:root{--paper:#f5f3ed;--panel:#fff;--ink:#20303a;--muted:#65747c;--line:#deddd5;--gold:#9b772e;--nav:#111a21;--radius:16px;color:var(--ink);background:var(--paper);font-family:PingFang TC,Microsoft JhengHei,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button,.button-link{cursor:pointer;border:1px solid var(--gold);background:var(--gold);color:#fff;border-radius:10px;padding:10px 15px;font-size:14px;font-weight:600}button:disabled{opacity:.5;cursor:default}.secondary{color:var(--ink);border-color:var(--line);background:0 0}button:hover:not(:disabled){filter:brightness(.94)}a{color:var(--gold);text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:3px;outline:2px solid #397b9c}[hidden]{display:none!important}.memory-header{z-index:5;background:var(--nav);color:#ede5d1;border-bottom:1px solid #d8b45a44;justify-content:space-between;align-items:center;gap:16px;padding:17px 30px;display:flex;position:sticky;top:0}.memory-brand{color:#e1bd6c;align-items:baseline;gap:12px;font-size:25px;font-weight:700;text-decoration:none;display:flex}.memory-brand small{letter-spacing:.12em;color:#b3bec5;font-size:11px}.memory-header nav{align-items:center;gap:20px;display:flex}.memory-header nav a{color:#ddd5c2;font-size:14px;text-decoration:none}.memory-header button{color:#e1bd6c;background:0 0;border-color:#d8b45a66}.memory-layout{grid-template-columns:270px minmax(0,1fr);max-width:1500px;min-height:calc(100vh - 130px);margin:auto;display:grid}.place-browser{border-right:1px solid var(--line);height:calc(100vh - 78px);padding:30px 18px;position:sticky;top:78px;overflow:auto}.eyebrow{color:var(--gold);letter-spacing:.08em;font-size:12px}.place-browser h1{margin:8px 0 22px;font-size:24px}.place-browser>button{width:100%;margin:12px 0 20px}.place-row{width:100%;color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:10px;margin-bottom:5px;padding:10px;font-weight:400;display:flex}.place-row.selected{background:#fff;border-color:#bb944c}.place-row img,.place-placeholder{object-fit:cover;border-radius:8px;flex:none;width:45px;height:45px}.place-placeholder{color:var(--gold);background:#eee8db;place-items:center;display:grid}.place-row span{min-width:0}.place-row b{font-size:14px;line-height:1.5;display:block}.place-row small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.memory-workspace{min-width:0;padding:30px 36px}.place-title{align-items:center;gap:25px;margin-bottom:26px;display:flex}.place-title>div{flex:1}.place-title h2{margin:8px 0 12px;font-family:Songti TC,serif;font-size:34px;line-height:1.25}.place-title p{line-height:1.7}.place-title img{object-fit:cover;border-radius:14px;width:180px;height:140px}.memory-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:8px;margin-bottom:20px;padding-bottom:14px;display:flex}.memory-tabs button{color:var(--muted);background:0 0;border-color:#0000;font-weight:500}.memory-tabs .active{color:#fff;background:#20303a}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.section-heading h2{margin:0 0 8px;font-size:23px}.section-heading p{color:var(--muted);margin:0;line-height:1.7}.tab-panel h2{font-size:23px}#status{min-height:24px;color:var(--gold);margin-bottom:10px;font-size:14px}.story-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:18px;display:grid}.story-card,.activity-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:23px}.story-card h3{margin:12px 0;font-size:21px;line-height:1.4}.story-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85}.meta,.muted{color:var(--muted);font-size:13px;line-height:1.7}.badge{color:#765718;background:#f0eadc;border-radius:5px;padding:5px 8px;font-size:12px;display:inline-block}.story-image{object-fit:contain;border-radius:8px;max-width:100%;max-height:300px;margin:8px 0}audio{width:100%;margin:12px 0}.button-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.empty-state{border-radius:var(--radius);color:var(--muted);border:1px dashed #c7c8bf;padding:35px;line-height:1.8}.empty-state b{color:var(--ink);font-size:18px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px;display:grid}.photo-grid img{aspect-ratio:4/3;object-fit:cover;border-radius:10px;width:100%}.photo-grid p{font-size:14px}.photo-grid small{color:var(--muted);margin:8px 0;font-size:12px;display:block}.photo-grid a{font-size:13px}label{margin:15px 0;font-size:14px;line-height:1.6;display:block}input,textarea,select{width:100%;color:var(--ink);background:#fff;border:1px solid #cdd1d0;border-radius:8px;margin-top:6px;padding:10px 12px;font-size:15px;display:block}textarea{resize:vertical;min-height:100px}.check{align-items:flex-start;gap:8px;display:flex}.check input{width:auto;accent-color:var(--gold);margin-top:4px}.form-row{grid-template-columns:1fr 1fr;gap:15px;display:grid}.puzzle-columns{grid-template-columns:1fr 1fr;gap:25px;display:grid}.clue-tray{border-right:1px solid var(--line);padding-right:22px}.clue-card{text-align:left;width:100%;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:12px;margin:12px 0;padding:18px;font-weight:400;display:block}.clue-card h4{margin:10px 0;font-size:17px}.clue-card p{font-size:14px;line-height:1.8}.clue-card small{color:var(--muted);font-size:12px;display:block}.clue-card a{margin:10px 0;font-size:12px;display:block}.clue-card span:last-child{color:var(--gold);margin-top:8px;font-size:12px;display:block}.puzzle-cards{counter-reset:card;padding:0;list-style:none}.puzzle-cards li{border:1px solid var(--line);counter-increment:card;background:#fff;border-radius:12px;margin:12px 0;padding:20px}.puzzle-cards li h4:before{content:counter(card,decimal-leading-zero) " / ";color:var(--gold)}.puzzle-cards textarea{min-height:80px}.puzzle-cards h4{margin:10px 0;font-size:17px}.puzzle-cards li[draggable]{cursor:grab}.checksum{overflow-wrap:anywhere;color:var(--muted);font-size:11px;line-height:1.6;display:block}.button-link{margin-top:18px;text-decoration:none;display:inline-block}.learning-tools{grid-template-columns:1.3fr 1fr;gap:24px;display:grid}.learning-tools form{border:1px solid var(--line);background:#fff;border-radius:14px;padding:22px}.class-code{letter-spacing:.16em;color:var(--gold)}#class-submissions{gap:14px;margin-top:20px;display:grid}.notice{background:#fff8e8;border:1px solid #b58943;border-radius:14px;margin-bottom:20px;padding:25px}.notice h2{margin-top:0}dialog{border:1px solid var(--line);background:var(--paper);width:min(680px,100vw - 30px);max-height:90vh;color:var(--ink);border-radius:18px;padding:28px;overflow:auto}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0b171dcc}dialog h2{font-size:22px}.dialog-status{color:#94421c;line-height:1.7}.media-item{border:1px solid var(--line);border-radius:10px;margin:8px 0;padding:10px}.memory-footer{text-align:center;color:var(--muted);padding:22px;font-size:12px}@media (max-width:950px){.memory-layout{grid-template-columns:220px minmax(0,1fr)}.memory-workspace{padding:25px 20px}.puzzle-columns{grid-template-columns:1fr}.clue-tray{border:0;padding:0}.place-title img{width:125px;height:120px}.memory-header{padding:14px 20px}.memory-brand small{display:none}}@media (max-width:650px){.memory-header{padding:15px;display:block;position:relative}.memory-header nav{flex-wrap:wrap;gap:12px;margin-top:12px}.memory-header nav a,.memory-header button{font-size:12px}.memory-layout{display:block}.place-browser{border:0;height:auto;padding:18px 15px;position:static}.place-browser h1{margin-bottom:14px}#place-list{gap:8px;padding-bottom:6px;display:flex;overflow:auto}.place-row{background:#eeeae1;width:180px;min-width:180px}.place-browser>button{margin-bottom:14px}.memory-workspace{padding:15px}.place-title{gap:12px}.place-title h2{font-size:27px}.place-title img{width:95px;height:115px}.section-heading{flex-wrap:wrap;align-items:flex-start}.memory-tabs{gap:2px}.memory-tabs button{padding:9px;font-size:13px}.learning-tools,.form-row{grid-template-columns:1fr}.puzzle-columns{gap:12px}dialog,.story-card{padding:20px}.memory-brand{font-size:25px}}.photo-grid article{position:relative}.photo-year{color:#f3dc9a;background:#13233ad1;border-radius:999px;padding:1px 8px;font:600 12px/1.6 system-ui,sans-serif;position:absolute;top:8px;left:8px}.photo-span{color:#8a6418;margin:-4px 0 12px;font-weight:600}.photo-span:empty{display:none}.ai-check{margin:.5rem 0;font-size:.85rem}.ai-check summary{cursor:pointer;color:var(--muted,#666)}.ai-check ul{margin:.4rem 0 .2rem 1.1rem;padding:0}.ai-check li{margin:.15rem 0}.fm-h{margin:26px 0 12px;font-size:17px}.fm-story{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px;padding:18px}.fm-pair{grid-template-columns:1fr 1fr;gap:16px;display:grid}.fm-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.fm-film{min-width:0;margin:0}.fm-film video,.fm-wait{aspect-ratio:16/9;object-fit:contain;background:#0d151b;border-radius:10px;width:100%;display:block}.fm-wait{color:#e1bd6c;place-items:center;font-size:14px;display:grid}.fm-film figcaption{padding-top:10px;line-height:1.6}.fm-film figcaption b{margin-top:6px;font-size:16px;display:block}.fm-film figcaption small{color:var(--muted);font-size:12px;display:block}.fm-film details p{white-space:pre-wrap;font-size:13px;line-height:1.7}.fm-badge{letter-spacing:.04em;border-radius:4px;padding:3px 8px;font-size:11px;display:inline-block}.fm-badge-ai{color:#f0d48c;background:#20303a}.fm-badge-code{color:#765718;background:#f0eadc}.fm-metrics{border-collapse:collapse;width:100%;margin-top:16px;font-size:13px}.fm-metrics th,.fm-metrics td{border-top:1px solid var(--line);text-align:left;padding:7px 8px;font-weight:400}.fm-metrics thead th{color:var(--muted);border-top:0;font-size:12px}.fm-metrics td{white-space:nowrap}.fm-metrics em{font-variant-numeric:tabular-nums;color:var(--muted);margin-left:8px;font-style:normal}.fm-bar{vertical-align:middle;background:#ece9e1;border-radius:3px;width:110px;height:6px;display:inline-block;overflow:hidden}.fm-bar i{background:var(--gold);height:100%;display:block}.fm-metrics td:nth-child(3) .fm-bar i{background:#9aa6ab}.fm-x{color:var(--gold);font-variant-numeric:tabular-nums;font-weight:600}.fm-note{color:var(--muted);margin:4px 0 10px;font-size:13px;line-height:1.8}.fm-note summary{cursor:pointer}#film-basis ul{margin:4px 0 0 18px;padding:0}@media (max-width:650px){.fm-pair{grid-template-columns:1fr}.fm-bar{width:56px}}.rc-grid{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:34px;display:grid}.rc-col{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:22px 24px}.rc-col h3{margin:4px 0 14px;font-family:Songti TC,serif;font-size:20px}.rc-col h4{color:var(--gold);letter-spacing:.04em;margin:18px 0 6px;font-size:14px}.rc-col ul,.rc-col ol{margin:0;padding-left:20px}.rc-col li{overflow-wrap:anywhere;margin:4px 0;font-size:14.5px;line-height:1.8}.rc-col li small{color:var(--muted);font-size:12px;display:block}.rc-flag{color:#765718;background:#f0eadc;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:11px;font-style:normal}.rc-unverified{color:var(--muted)}.rc-memory+.rc-memory{border-top:1px solid var(--line);margin-top:16px;padding-top:6px}.rc-memory h4{color:var(--ink);font-family:Songti TC,serif;font-size:17px}.rc-note{color:var(--muted);border-top:1px dashed var(--line);margin-top:16px;padding-top:12px;font-size:12px;line-height:1.7}.text-button{color:var(--gold);font-weight:500;font-size:inherit;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.rc-after{margin-top:8px}.fm-memo{margin-bottom:14px;font-size:14px;line-height:1.8}.fm-memo summary{cursor:pointer;font-weight:600}.fm-memo ol{margin:6px 0 0;padding-left:20px}@media (max-width:950px){.rc-grid{grid-template-columns:1fr}}
