/* The experience is a sequence of quiet pages, with the calendar kept separate. */
.ny { background:#f5f3ed; font-size:15px; line-height:1.5; }
.ny #app { min-height:100svh; display:flex; flex-direction:column; }
.ny-header { width:100%; max-width:1280px; padding:24px 44px; border:0; min-height:84px; }
.ny-header .ny-name { text-decoration:none; font-size:24px; }
.ny-header nav { font-size:12px; }
.ny-header .ny-about { padding:0; min-width:44px; }
.ny-stage-label { color:#6c716a; font-size:12px; }
.ny-back { font-size:13px!important; min-width:60px; text-align:left; }
.ny-shell { width:100%; max-width:1130px; padding:46px 44px 60px; flex:1; }
.ny-footer { width:calc(100% - 88px); max-width:1192px; margin:0 auto; padding:20px 0; border:0; letter-spacing:0; text-transform:none; font-size:10px; align-items:center; }
.ny-footer a { text-decoration:none; }
.ny-kicker { font-size:10px; letter-spacing:.1em; }
.ny-kicker::before { display:none; }
.ny-heading { font-size:clamp(36px,4vw,58px); line-height:1.08; font-weight:400; letter-spacing:-1.6px; }
.ny-primary { border-radius:8px; background:#252e2b!important; min-height:54px; font-size:13px!important; font-weight:500; padding:14px 20px!important; }
.ny-primary::after { content:'→'; font-size:23px; font-weight:400; }
.ny-primary:hover { background:#3c4b42!important; }
.ny-secondary { border-radius:8px; font-size:13px!important; }
.ny-link { font-size:12px!important; text-underline-offset:4px; }
.ny-subtle,.ny-meta { color:#60665f; }
.ny [data-action=back]:focus-visible { outline-offset:0; }

/* Landscape pages. Text remains HTML; the decorative image contains no type. */
.ny[data-stage=intro],.ny[data-stage=result],.ny[data-stage=finish] { background:#b9c5c5; }
.ny[data-stage=intro] #app,.ny[data-stage=result] #app,.ny[data-stage=finish] #app { position:relative; isolation:isolate; }
.ny[data-stage=intro] #app::before,.ny[data-stage=result] #app::before,.ny[data-stage=finish] #app::before { content:''; position:absolute; inset:0; z-index:-2; background:url('./assets/quiet-landscape.jpg') center 57%/cover no-repeat; }
.ny[data-stage=intro] #app::after,.ny[data-stage=result] #app::after,.ny[data-stage=finish] #app::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,#e8edea40 0%,#f4eee82b 40%,#12201a44 62%,#101a15e6 100%); }
.ny[data-stage=intro] .ny-footer,.ny[data-stage=result] .ny-footer,.ny[data-stage=finish] .ny-footer { color:#eeeede; }
.ny-intro { margin:0; padding:0; max-width:none; min-height:calc(100svh - 242px); display:flex; flex-direction:column; align-items:flex-start; }
.ny-intro-copy { max-width:620px; }
.ny-title { font-size:clamp(52px,6.3vw,84px); letter-spacing:-3px; line-height:1.05; margin:10px 0 28px!important; }
.ny-question { max-width:440px; font:15px/1.55 Arial,Helvetica,sans-serif; letter-spacing:0; }
.ny-pill { border:0; background:#f5f3edbd; font-size:10px; color:#39453c; margin-top:16px; padding:4px 9px; border-radius:4px; }
.ny-intro-bottom { margin-top:auto; padding-top:52px; width:360px; max-width:100%; display:flex; flex-direction:column; gap:14px; align-items:stretch; }
.ny-intro-bottom .ny-primary { border:1px solid #eef0e0c9; background:#202b27d9!important; }
.ny-intro-bottom .ny-link { color:#fff; align-self:center; }
.ny-advisory { margin:0!important; color:#f5f3ed; font-size:11px; max-width:330px; text-shadow:0 1px 4px #000; }

/* Compact, anonymous choices with an explicit confirmation step. */
.ny-choose-layout { grid-template-columns:1fr 1fr; gap:16px 80px; max-width:990px; margin:auto; align-items:start; }
.ny-choose-layout .ny-heading { max-width:440px; }
.ny-choose-layout .ny-subtle { max-width:350px; font-size:14px; }
.ny-choose-layout .ny-meta { font-size:11px; margin-top:18px; }
.ny-choices { gap:8px; }
.ny-option { padding:14px 40px 14px 16px; min-height:57px; border:1px solid transparent; border-radius:8px; background:#ebe9e2; gap:0; }
.ny-option::after { content:'›'; position:absolute; right:16px; top:50%; transform:translateY(-50%); color:#6c7267; font-size:22px; }
.ny-option:has(input:checked) { background:#f5f3ed; border-color:#4e5950; box-shadow:0 0 0 1px #4e595033; }
.ny-option:has(input:focus-visible) { outline:3px solid #9b642d; outline-offset:3px; }
.ny-option input { position:absolute; width:1px; height:1px; opacity:0; }
.ny-option blockquote { font:14px/1.4 Arial,Helvetica,sans-serif; }
.ny-option small { font-size:10px; margin-top:7px; }
.ny-option small:empty { display:none; }
.ny-choice-actions .ny-actions { flex-direction:column; align-items:stretch; margin-top:0; gap:8px; }
.ny-choice-actions .ny-link { text-decoration:none; background:#ebe9e2; border-radius:8px; }
.ny-choice-actions>[data-action=next-set] { background:none; display:block; margin:8px auto 0; text-decoration:underline; }

/* Documentary reveal: full uncropped photograph, followed by a dark story panel. */
.ny[data-stage=reveal] { background:#222622; color:#f2f1e9; }
.ny[data-stage=reveal] .ny-header,.ny[data-stage=reveal] .ny-footer,.ny[data-stage=reveal] .ny-stage-label { color:#e7e9df; }
.ny[data-stage=reveal] .ny-shell { padding-top:18px; }
.ny-reveal { grid-template-columns:1fr .9fr; gap:54px; }
.ny-photo { width:100%; max-height:640px; object-fit:contain; background:#161c18; border-radius:10px; }
.ny-photo-wrap figcaption { font-size:10px; color:#c0c7b8; }
.ny-photo-wrap .ny-link { color:#e2e6dc; }
.ny-reveal .ny-heading { font-size:42px; margin:10px 0 6px!important; }
.ny-reveal .ny-meta,.ny-reveal .ny-subtle { color:#bcc4b5; }
.ny-reveal .ny-context { font-size:14px; line-height:1.65; max-width:480px; margin:22px 0!important; }
.ny-reveal .ny-quote { font-size:25px; }
.ny-reveal .ny-divider { border-color:#4e564b; }
.ny-reveal .ny-primary { background:#e4e7da!important; color:#252e2b!important; }
.ny-reveal .ny-error { background:#31382f; border-color:#606956; }
.ny-reveal .ny-actions { gap:10px 22px; margin-top:24px; }

.ny-center { max-width:530px; margin:12px auto; }
.ny-reflect-title { font-size:clamp(40px,4.6vw,58px); line-height:1.12; letter-spacing:-1.6px; margin:28px 0 38px!important; }
.ny-reflect-title span { color:#7c8077; }
.ny-citation { border:0; padding:0; margin:30px 0; }
.ny-citation .ny-quote { font-size:21px; }
.ny-citation p { font-size:11px; }
.ny[data-stage=reflect] .ny-center { min-height:calc(100svh - 285px); display:flex; flex-direction:column; }
.ny[data-stage=reflect] .ny-actions { margin-top:auto; padding-top:28px; flex-direction:column; align-items:stretch; gap:8px; }
.ny[data-stage=reflect] .ny-actions .ny-link { background:#e9e7e0; text-decoration:none; border-radius:8px; }
.ny[data-stage=reflect] [data-action=finish] { align-self:center; margin-top:8px; }
.ny-write-note { font-size:14px; }
.ny-input { border-radius:10px; border-color:#dadbd0; background:#f9f8f3; min-height:290px; font-size:23px!important; padding:22px; }
.ny-counter { margin-top:-35px; position:relative; pointer-events:none; padding:0 18px 12px; font-size:10px; }
.ny-privacy { font-size:11px; max-width:360px; }
.ny[data-stage=write] .ny-actions { align-items:stretch; }
.ny[data-stage=write] .ny-primary { width:100%; }
.ny-result-layout { max-width:990px; margin:auto; grid-template-columns:1fr .85fr; gap:80px; }
.ny-card { aspect-ratio:auto; min-height:480px; border-radius:12px; border:1px solid #f5f3ed; background:#f5f3ed url('./assets/white-marble.jpg') center/cover; box-shadow:0 16px 60px #15261c26; padding:36px; }
.ny-card::before { display:none; }
.ny-card .ny-quote { font-size:32px; font-style:italic; padding:35px 0; }
.ny-card-foot { font-size:10px; }
.ny-taf-logo { display:block; width:64px; height:auto; flex:0 0 64px; mix-blend-mode:multiply; }
.ny-card-attribution { font-size:10px; color:#5c6557; }
.ny-result-aside .ny-heading { font-size:45px; }
.ny-result-aside .ny-heading span { color:#48544c; }
.ny-closing { margin:25px 0!important; font:20px Georgia,serif; }
.ny-result-aside .ny-actions { gap:12px; }
.ny-result-aside .ny-actions>.ny-link,.ny-result-aside .ny-actions>a,.ny-result-aside .ny-secondary { background:#f5f3ede8; color:#252e2b; padding:12px 18px; border-radius:8px; font-size:12px; text-align:center; }
.ny[data-stage=finish] .ny-finish { padding-top:45px; }
.ny-finish .ny-reflect-title { max-width:480px; }
.ny-finish [data-action=start] { margin-top:25px; }
.ny dialog { border-radius:14px; border:0; box-shadow:0 20px 90px #0003; padding:24px; }
.ny-modal-top h2 { font-size:24px; }
.ny dialog .ny-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.ny dialog .ny-primary { min-width:0; }
.ny-share-preview { border-radius:10px; }

@media(max-width:800px) {
  .ny-header { padding:16px 24px; min-height:74px; }
  .ny-shell { padding:30px 24px 36px; }
  .ny-footer { width:calc(100% - 48px); padding:18px 0; font-size:9px; gap:14px; }
  .ny-footer span:last-child { display:none; }
  .ny-intro { min-height:calc(100svh - 214px); }
  .ny-intro-copy { max-width:480px; }
  .ny-title { font-size:58px; margin:25px 0!important; }
  .ny-question { max-width:360px; font-size:14px; }
  .ny-choose-layout { display:block; max-width:500px; }
  .ny-choose-layout .ny-heading { font-size:39px; max-width:360px; margin:10px 0 18px!important; }
  .ny-choose-layout .ny-meta { margin:14px 0; }
  .ny-choices { margin-top:22px; }
  .ny-choice-actions { margin-top:16px; }
  .ny-reveal { grid-template-columns:1fr; gap:24px; max-width:530px; margin:auto; }
  .ny-photo-wrap { max-width:none; }
  .ny-photo { max-height:62svh; margin:auto; }
  .ny-reveal .ny-heading { font-size:36px; }
  .ny-reveal-copy>.ny-meta:first-child { margin-top:0!important; }
  .ny-center { margin:10px auto; }
  .ny[data-stage=reflect] .ny-center { min-height:calc(100svh - 215px); }
  .ny-result-layout { grid-template-columns:1fr; max-width:500px; gap:28px; }
  .ny-card { min-height:430px; padding:26px; }
  .ny-card .ny-quote { font-size:30px; }
  .ny-result-aside { color:#f6f4eb; }
  .ny-result-aside .ny-heading { font-size:32px; }
  .ny-result-aside .ny-heading span { color:#e0e5d8; }
  .ny-result-aside .ny-primary { border:1px solid #d0d8c4; }
  .ny[data-stage=result] #app::after { background:linear-gradient(#e4e9e550,#34413544 30%,#111d15ee 78%); }
}
@media(max-width:420px) {
  .ny-header { padding:14px 24px; min-height:70px; }
  .ny-header .ny-name { font-size:22px; }
  .ny-shell { padding:22px 24px 28px; }
  .ny-intro { min-height:calc(100svh - 194px); }
  .ny-title { font-size:47px; letter-spacing:-1.9px; margin:30px 0 25px!important; }
  .ny-question { font-size:13px; max-width:300px; }
  .ny-intro-bottom { width:100%; padding-top:65px; gap:8px; }
  .ny-intro-bottom .ny-primary { width:100%; }
  .ny-advisory { font-size:10px; max-width:290px; margin-bottom:6px!important; }
  .ny-choose-layout .ny-heading { font-size:35px; max-width:290px; }
  .ny-choose-layout .ny-subtle { font-size:12px; }
  .ny-option { min-height:49px; padding-top:11px; padding-bottom:11px; }
  .ny-option blockquote { font-size:13px; }
  .ny-choice-actions .ny-primary { width:100%; }
  .ny-reflect-title { font-size:38px; letter-spacing:-1.2px; }
  .ny-citation .ny-quote { font-size:19px; }
  .ny[data-stage=reveal] .ny-shell { padding-top:0; }
  .ny-reveal .ny-photo { border-radius:8px; max-height:56svh; }
  .ny-reveal .ny-heading { font-size:33px; }
  .ny-reveal .ny-context { font-size:13px; }
  .ny-reveal .ny-actions .ny-primary { width:100%; }
  .ny-heading { font-size:35px; }
  .ny-input { min-height:290px; font-size:21px!important; }
  .ny-card { min-height:390px; padding:24px; }
  .ny-card .ny-quote { font-size:27px; }
  .ny dialog { padding:20px; }
}

/* Fewer labels, readable supporting text. Provenance opens only when requested. */
.ny-card-foot{align-items:center;gap:24px}.ny-card-attribution{font-size:15px!important;line-height:1.45;margin:0!important;max-width:310px;color:#414d40}.ny-card .ny-kicker{font-size:14px;letter-spacing:.06em}.ny-card .ny-taf-logo{width:58px;flex-basis:58px}.ny-footer{font-size:14px!important;gap:24px}.ny-stage-label,.ny-header nav{font-size:15px}.ny-pill{font-size:14px}.ny-advisory{font-size:14px;max-width:360px}.ny-option small{font-size:13px}.ny-meta,.ny-privacy,.ny-counter{font-size:14px}.ny-link{font-size:15px!important}.ny-reveal .ny-meta,.ny-reveal .ny-location{font-size:15px}.ny-photo-wrap figcaption{font-size:14px}.ny-photo-wrap summary,.ny-source-details summary{cursor:pointer;min-height:40px;padding-block:8px}.ny-source-details{margin-top:18px}.ny-source-details[open]{padding-bottom:10px}.ny-choose-layout .ny-subtle{font-size:16px}.ny-write-note{font-size:16px}.ny-question{font-size:16px}.ny-citation p{font-size:15px}.ny-share-status{font-size:15px}.ny-intro-bottom{gap:14px}.ny-card-foot .ny-card-attribution:only-child{max-width:none}@media(max-width:420px){.ny-title{font-size:43px}.ny-intro-bottom{padding-top:55px}.ny-footer{font-size:14px!important}.ny-advisory{font-size:14px}.ny-card{padding:24px}.ny-card .ny-quote{font-size:29px}.ny-choose-layout .ny-subtle{font-size:16px}.ny-option blockquote{font-size:15px}.ny-question{font-size:16px}}

/* Choices are navigation buttons: pointer, Enter and Space reveal immediately. */
.ny button.ny-option{background:#ebe9e2;border:1px solid transparent;text-align:left;width:100%;color:#252927}
.ny button.ny-option.is-selected{background:#f5f3ed;border-color:#4e5950;box-shadow:0 0 0 1px #4e595033}
.ny button.ny-option:hover{background:#e2e4d9}
.ny-option-quote{display:block;font:15px/1.4 Arial,Helvetica,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}

.ny-full-inscription{white-space:pre-line;font-size:18px;line-height:1.6;margin:16px 0;overflow-wrap:anywhere}

/* Decorative stone composition used when no documentary photograph is available. */
.ny-stone{min-height:510px;aspect-ratio:4/5;padding:clamp(30px,5vw,65px);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:44px;text-align:center;color:#f2eee3;background:linear-gradient(#11161380,#11161399),url('./assets/dark-granite.jpg') center/cover;border:1px solid #9b9d8c55;border-radius:4px;box-shadow:inset 0 0 65px #0005,0 18px 48px #0002}
.ny-stone .ny-stone-quote{font:400 clamp(23px,2.5vw,32px)/1.5 Georgia,'Times New Roman',serif;white-space:pre-line;overflow-wrap:anywhere;text-wrap:balance;text-shadow:0 1px 2px #000;max-width:100%}
.ny-stone-person{width:100%;max-width:420px;padding-top:28px;border-top:1px solid #dad8c766}
.ny-stone .ny-stone-name{font:500 19px/1.5 Arial,Helvetica,sans-serif;text-transform:uppercase;letter-spacing:.09em;text-wrap:balance}
.ny-stone .ny-stone-years{font:400 18px/1.5 Arial,Helvetica,sans-serif;letter-spacing:.12em;margin-top:12px;font-variant-numeric:lining-nums}
@media(max-width:650px){.ny-stone{min-height:430px;padding:34px 25px;gap:32px}.ny-stone .ny-stone-quote{font-size:24px}.ny-stone .ny-stone-name{font-size:17px;letter-spacing:.07em}.ny-stone .ny-stone-years{font-size:17px}}
.ny-stone{width:100%;min-width:0}@media(max-width:650px){.ny-stone{aspect-ratio:auto}}

/* Quiet typographic quotation marks frame each anonymous choice. */
.ny button.ny-option{padding:23px 56px 27px 53px;min-height:92px;transition:background .18s,border-color .18s}
.ny-option .ny-option-quote{font:400 20px/1.45 Georgia,'Times New Roman',serif;letter-spacing:0;min-width:0;max-width:100%;text-wrap:pretty}
.ny-option-mark{position:absolute;pointer-events:none;font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1;color:#8a967d;opacity:.75;user-select:none}
.ny-option-mark-open{font-size:57px;left:15px;top:14px}
.ny-option-mark-close{font-size:36px;right:39px;bottom:0}
.ny-option::after{right:17px;font-size:23px;color:#7b8374}
.ny-choices{gap:11px}
@media(max-width:650px){.ny button.ny-option{padding:20px 43px 24px 43px;min-height:86px}.ny-option .ny-option-quote{font-size:18px;line-height:1.45}.ny-option-mark-open{font-size:48px;left:11px;top:14px}.ny-option-mark-close{font-size:31px;right:31px;bottom:0}.ny-option::after{right:12px;font-size:21px}}
.ny button.ny-option{padding-bottom:32px}.ny-option-mark-close{font-size:28px}@media(max-width:650px){.ny button.ny-option{padding-bottom:30px}.ny-option-mark-close{font-size:26px}}

/* The same quotation treatment accompanies epitaphs throughout the experience. */
.ny .ny-quoted{position:relative;padding:32px 18px 35px;white-space:normal}
.ny-quote-content{display:block;white-space:pre-wrap;overflow-wrap:anywhere}
.ny-quote-mark{position:absolute;pointer-events:none;user-select:none;font:400 52px/1 Georgia,'Times New Roman',serif;color:#87927c;opacity:.8}
.ny-quote-open{top:-5px;left:0}.ny-quote-close{bottom:-7px;right:0;font-size:42px}
.ny-stone .ny-quoted{padding:38px 0 38px;width:100%}
.ny-stone .ny-quote-mark{color:#ddd9c9;left:50%;right:auto;transform:translateX(-50%);opacity:.75}
.ny-reveal-copy .ny-quote-mark{color:#b7c1aa}
.ny-card .ny-quoted{padding:38px 0 38px}
.ny-card .ny-quote-mark{color:#707e65}
.ny .ny-original-record{font-size:16px;line-height:1.6;margin:10px 0 20px}
.ny-source-details .ny-quote-mark{font-size:32px}
@media(max-width:650px){.ny .ny-quoted{padding-top:30px;padding-bottom:30px}.ny .ny-quote-mark{font-size:44px}.ny .ny-quote-close{font-size:36px}.ny-source-details .ny-quote-mark{font-size:30px}}
