.today-stage { max-width: 900px; margin: 0 auto; background: #f7f0e3; color: #394239; overflow: hidden; }
.today-stage [hidden] { display: none !important; }
.today-scene { display: block; width: 100%; height: auto; aspect-ratio: 3/2; object-fit: contain; }
.today-intro, .today-complete { text-align: center; padding: 30px 20px 44px; }
.today-speaker { color: #927148; font-size: 12px; letter-spacing: .15em; margin: 0 0 19px; }
.today-stage h1, .today-stage h2 { font: 400 clamp(23px, 4vw, 35px)/1.6 'Snack Batang', Batang, serif; word-break: keep-all; }
.today-intro > p:last-of-type, .today-complete > p:last-child { white-space: pre-line; font-size: 15px; line-height: 2; }
.today-begin { border: 0; border-bottom: 1px solid #a58963; background: none; color: #405448; font: inherit; padding: 14px 4px; margin-top: 22px; cursor: pointer; }
.today-table { background: radial-gradient(ellipse at center, #344e41, #20362e); padding: 48px 24px 25px; color: #fff8e8; min-height: 410px; text-align: center; }
.today-table > h2 { font-size: clamp(20px, 3vw, 29px); margin: 0 0 25px; }
.today-board { display: flex; gap: 5%; justify-content: center; max-width: 680px; margin: 36px auto 16px; perspective: 1200px; }
.today-card { position: relative; width: 28%; aspect-ratio: 2/3; border: 0; padding: 0; background: transparent; color: #374e41; cursor: pointer; transition: transform .65s ease, opacity .65s ease; border-radius: 8px; }
.today-card:first-child { transform: rotate(-6deg) translateY(10px); }
.today-card:last-child { transform: rotate(6deg) translateY(10px); }
.today-card:enabled:hover { transform: translateY(-8px); }
.today-card:focus-visible, .today-begin:focus-visible { outline: 3px solid #bc8c4c; outline-offset: 6px; }
.today-card-turn { display: block; position: absolute; inset: 0; transform-style: preserve-3d; transition: transform 1s cubic-bezier(.2,.65,.2,1); }
.today-card-back, .today-card-front { position: absolute; inset: 0; display: block; overflow: hidden; border-radius: 8px; backface-visibility: hidden; -webkit-backface-visibility: hidden; background: #e8ddc5; box-shadow: 0 9px 22px #0c1c2070; }
.today-card-back { border: 1px solid #bf9b6c; }
.today-card-front { transform: rotateY(180deg); }
.today-card img { width: 100%; height: 100%; object-fit: contain; position: absolute; inset: 0; }
.today-card-number { position: absolute; inset: auto 0 8%; font-size: 12px; color: #8b663b; z-index: -1; }
.today-card-name { position: absolute; bottom: 0; left: 0; right: 0; padding: 8px 2px; background: #fff7e8ed; font-size: clamp(11px, 2vw, 16px); line-height: 1.4; }
.today-stage-status { min-height: 2em; font-size: 13px; line-height: 1.8; color: #d9ceaf; margin-top: 35px; }
.today-stage[data-state='waiting'] .today-card:not(.is-selected),
.today-stage[data-state='revealing'] .today-card:not(.is-selected),
.today-stage[data-state='complete'] .today-card:not(.is-selected) { opacity: .15; transform: scale(.9) translateY(14px); }
.today-card.is-selected { transform: translateY(-13px) scale(1.07); z-index: 2; }
.today-stage[data-state='revealing'] .is-selected .today-card-turn,
.today-stage[data-state='complete'] .is-selected .today-card-turn { transform: rotateY(180deg); }
.today-stage[data-state='waiting'] .is-selected { animation: today-breathe 1.2s ease-in-out infinite alternate; }
.today-stage[data-state='complete'] .today-board { margin-top: 8px; }
.today-complete { padding-bottom: 15px; }
.today-complete .today-speaker { color: #d5b87e; }
.today-stage[data-motion='off'] *, .today-stage[data-motion='off'] *::before { animation: none !important; transition: none !important; }
@keyframes today-breathe { from { filter: brightness(1); } to { filter: brightness(1.14); } }
@media (max-width: 520px) { .today-table { padding: 34px 15px 24px; min-height: 365px; } .today-board { gap: 4%; margin-block: 28px 18px; } .today-card { width: 29%; border-radius: 5px; } .today-stage-status { font-size: 12px; } }

body[data-persona='siheon'] { --ink:#394239; --muted:#797566; --paper:#f3eee3; --paper-light:#fff9ec; --accent:#456052; --accent-soft:#e7e4d5; --line:#d2c7b2; --gold:#a1804f; }
#snack-today { width:min(100% - 48px,960px); margin:40px auto 0; }
.today-reading-header { padding:12px 20px 18px; text-align:center; }
.today-reading-header h1 { font:400 clamp(27px,4vw,38px)/1.6 var(--serif); margin-top:10px; }
.today-memory { max-width:760px; margin:0 auto 25px; padding:0 20px; }
.today-memory > label { display:flex; align-items:center; justify-content:center; gap:9px; min-height:44px; font-size:13px; cursor:pointer; }
.today-memory .field-note { text-align:center; }
.today-connection { text-align:center; color:var(--muted); font-size:14px; line-height:1.9; padding:0 20px; }
.today-connection:empty { display:none; }
.today-content > .secondary-button { display:flex; margin:24px auto; }
.today-result { max-width:900px; margin:0 auto; background:var(--paper-light); }
.today-handoff { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.today-letter { max-width:760px; margin:0 auto; padding:32px 48px 54px; }
.today-result-intro { text-align:center; }
.today-already { font-family:var(--serif); font-size:25px; line-height:1.7; word-break:keep-all; }
.today-date { color:var(--muted); font-size:12px; margin-top:13px; }
.today-result-card { text-align:center; margin:34px 0 38px; }
.today-result-card > img { width:min(75%,300px); height:auto; max-height:480px; object-fit:contain; margin:0 auto 25px; }
.today-result-card h2 { font:400 32px/1.6 var(--serif); }
.today-result-card figcaption { color:var(--gold); font-size:13px; margin-top:8px; }
.today-result-note { border-top:1px solid var(--line); padding:25px 0; }
.today-result-note h3 { font:400 24px/1.65 var(--serif); color:var(--accent); margin-bottom:13px; word-break:keep-all; }
.today-result-note > p { font-size:16px; line-height:2; word-break:keep-all; overflow-wrap:anywhere; }
.today-next { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:14px 0 7px; border-bottom:1px solid var(--accent); text-decoration:none; font-size:14px; color:var(--accent); }
#today-share-status { text-align:center; min-height:24px; }
@media(max-width:560px){
  #snack-today { width:100%; margin-top:24px; }
  .today-reading > .text-button { margin-left:22px; }
  .today-letter { padding:26px 24px 38px; }
  .today-already { font-size:22px; }
  .today-result-note h3 { font-size:22px; }
  .today-result-note > p { font-size:15px; }
  .today-memory { padding-inline:24px; }
}
