.nfc-section{ background:#e9e5d9; padding-block:clamp(65px,8vw,115px); overflow:hidden; }
.nfc-layout{ display:grid; grid-template-columns:.95fr 1.05fr; align-items:center; gap:clamp(35px,6vw,90px); }
.nfc-section .eyebrow{ display:flex; gap:12px; align-items:center; color:var(--moss); }
.nfc-dot{ width:7px; height:7px; border-radius:50%; background:var(--moss); box-shadow:0 0 0 5px #3f5a4610; }
.nfc-copy h2{ font-family:var(--font-serif); font-size:clamp(2.5rem,4.6vw,4.3rem); font-weight:400; line-height:1.13; letter-spacing:-.04em; }
.nfc-copy h2 em{ color:var(--moss); }
.nfc-copy>.lead{ font-size:.9rem; max-width:46ch; line-height:1.9; margin-top:23px; }
.nfc-steps{ list-style:none; padding:0; margin:30px 0; display:grid; gap:17px; }
.nfc-steps li{ display:flex; gap:15px; align-items:flex-start; }
.nfc-steps li>span{ display:grid; place-items:center; width:30px; height:30px; flex:none; border:1px solid #47331f30; border-radius:50%; font-size:.62rem; }
.nfc-steps strong{ font-size:.8rem; font-weight:500; }
.nfc-steps p{ margin:3px 0 0; font-size:.72rem; color:var(--earth-2); line-height:1.7; }
.nfc-actions{ display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
.nfc-preview{ gap:16px; }
.nfc-preview svg{ width:20px; height:20px; }
.nfc-note{ font-size:.65rem; color:var(--earth-2); line-height:1.75; margin-top:15px; max-width:54ch; }
.nfc-visual{ position:relative; background:var(--moss); padding:28px 28px 24px; border-radius:5px; color:var(--rice); box-shadow:0 22px 65px #263b2c20; }
.nfc-visual__top{ display:flex; justify-content:space-between; align-items:center; gap:20px; padding-bottom:23px; font-size:.6rem; letter-spacing:.12em; }
.nfc-visual__top>span:last-child{ opacity:.7; }
.nfc-device{ padding:8px; border:1px solid #ffffff3a; border-radius:18px; background:#161b17; box-shadow:0 8px 25px #0003; }
.nfc-device video{ width:100%; display:block; aspect-ratio:854/480; background:#171b17; border-radius:11px; }
.nfc-fallback{ padding:36px 20px; text-align:center; font-size:.85rem; color:var(--rice); }
.nfc-fallback a{ text-decoration:underline; }
.nfc-visual__bottom{ display:grid; grid-template-columns:110px 1fr; gap:22px; align-items:center; padding-top:28px; }
.nfc-key{ position:relative; width:90px; height:115px; margin-top:14px; background:#e9d7ae; border:1px solid #c5a76d; border-radius:13px 13px 35px 35px; transform:rotate(-12deg); display:flex; align-items:center; justify-content:center; flex-direction:column; box-shadow:5px 8px 12px #0003; }
.nfc-key::before{ content:''; position:absolute; left:31px; top:-24px; width:27px; height:37px; border:4px solid #c8c6b7; border-radius:50%; box-shadow:inset 0 0 0 1px #777; }
.nfc-key img{ width:70px; height:59px; object-fit:contain; margin-top:12px; }
.nfc-key>span{ font-size:.45rem; color:#59472a; letter-spacing:.12em; margin-top:3px; }
.nfc-key:after{ content:''; position:absolute; inset:-12px; border:1px solid #f7f2e849; border-radius:30px; animation:nfc-pulse 3s ease-out infinite; pointer-events:none; }
.nfc-visual__bottom strong{ font-family:var(--font-serif); font-size:1.5rem; font-weight:400; line-height:1.3; }
.nfc-visual__bottom p{ font-size:.7rem; margin:10px 0 0; color:#f7f2e8bd; line-height:1.7; }
.nfc-source{ font-size:.56rem; margin:25px 0 0; color:#f7f2e8bd; line-height:1.8; }
.nfc-source a{ text-decoration:underline; text-underline-offset:3px; }
.nfc-dialog{ border:0; padding:0; width:min(900px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); border-radius:14px; background:var(--rice); color:var(--earth); }
.nfc-dialog::backdrop{ background:#101710cf; backdrop-filter:blur(8px); }
.nfc-dialog-open{ overflow:hidden; }
.nfc-dialog__head{ display:flex; justify-content:space-between; gap:20px; align-items:center; padding:20px 24px; }
.nfc-dialog__head h2{ font-family:var(--font-serif); margin:0; font-size:1.4rem; font-weight:400; }
.nfc-dialog__head button{ border:1px solid var(--line); background:transparent; width:40px; height:40px; cursor:pointer; border-radius:50%; font-size:1.5rem; flex:none; }
.nfc-dialog video{ width:100%; max-height:65dvh; display:block; background:#141a13; }
.nfc-dialog__caption{ padding:18px 24px; font-size:.72rem; margin:0; }
.nfc-story{ background:#e9e5d9; padding-block:70px 90px; }
.nfc-story__intro{ text-align:center; max-width:700px; margin:0 auto 40px; }
.nfc-story__intro h1{ font-family:var(--font-serif); font-size:clamp(2.5rem,5vw,4.6rem); font-weight:400; }
.nfc-story__intro .lead{ margin-inline:auto; font-size:.9rem; }
.nfc-story__film{ max-width:1000px; margin:auto; }
.nfc-story__film video{ width:100%; background:var(--moss); aspect-ratio:16/9; display:block; }
.nfc-story__film figcaption{ margin-top:15px; font-size:.72rem; color:var(--earth-2); }
.nfc-story__links{ display:flex; justify-content:center; flex-wrap:wrap; gap:20px; margin-top:35px; }
.nfc-film-error{ padding:16px; font-size:.85rem; }
@keyframes nfc-pulse{0%{transform:scale(.9);opacity:0}30%{opacity:.8}100%{transform:scale(1.15);opacity:0}}
@media(max-width:800px){.nfc-layout{grid-template-columns:1fr;gap:40px}.nfc-copy>.lead{max-width:60ch}.nfc-visual{max-width:600px;width:100%;margin:auto}.nfc-story{padding-block:50px 65px}}
@media(max-width:480px){.nfc-visual{padding:20px 16px}.nfc-copy h2{font-size:2.6rem}.nfc-visual__top{font-size:.49rem;gap:12px}.nfc-visual__bottom{grid-template-columns:90px 1fr;gap:15px}.nfc-key{width:76px;height:100px;margin-left:6px}.nfc-key:before{left:24px}.nfc-visual__bottom strong{font-size:1.3rem}.nfc-source{font-size:.53rem}.nfc-dialog__head{padding:16px}.nfc-dialog__head h2{font-size:1.15rem}}
@media(prefers-reduced-motion:reduce){.nfc-key:after{animation:none;opacity:.4}}
