:root{font-family:Noto Sans SC,Microsoft YaHei,sans-serif;color:#17231f;background:#102a24;font-synthesis:none;--ink:#102a24;--paper:#f4ebdd;--gold:#c7a467;--clay:#a85d42;--charcoal:#18201d}*{box-sizing:border-box}html,body,#root{margin:0;min-width:320px;min-height:100%}body{min-height:100vh;background:var(--ink)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.app-shell{min-height:100vh;background:var(--ink);color:var(--paper)}.topbar{height:76px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(244,235,221,.14);position:relative;z-index:20}.brand{border:0;background:none;color:inherit;display:flex;align-items:center;gap:12px;text-align:left}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border:1px solid var(--gold);color:var(--gold);font:600 20px "Noto Serif SC",serif;transform:rotate(-4deg)}.brand div{display:grid;gap:1px}.brand strong{font:600 19px "Noto Serif SC",serif;letter-spacing:.16em}.brand small{color:#f4ebdd80;font-size:8px;letter-spacing:.18em}.topbar nav{display:flex;gap:6px}.topbar nav button{border:0;background:transparent;color:#f4ebdda3;padding:10px 13px;display:flex;gap:7px;align-items:center;font-size:13px;border-radius:2px}.topbar nav button svg{width:15px}.topbar nav button:hover,.topbar nav button.active{color:var(--paper);background:#f4ebdd14}.top-actions{display:flex;gap:8px}.top-actions button{border:1px solid rgba(244,235,221,.2);background:transparent;color:var(--paper);padding:9px 13px;display:flex;align-items:center;gap:7px;font-size:12px}.top-actions svg{width:15px}.top-actions .export-action{background:var(--gold);color:var(--ink);border-color:var(--gold)}.mobile-menu{display:none!important}.home{height:calc(100vh - 76px);min-height:640px;display:grid;grid-template-columns:minmax(360px,.8fr) minmax(520px,1.35fr);overflow:hidden}.hero-copy{padding:clamp(40px,5.6vh,76px) 4vw 26px 7vw;position:relative;display:flex;flex-direction:column;justify-content:safe center;overflow-y:auto;scrollbar-width:none;z-index:2}.hero-copy::-webkit-scrollbar{display:none}.hero-copy:after{content:"";position:absolute;right:-1px;top:8%;height:84%;width:1px;background:linear-gradient(transparent,rgba(199,164,103,.45),transparent)}.edition,.section-kicker{font-size:10px;letter-spacing:.27em;color:var(--gold);text-transform:uppercase}.hero-copy h1{font:600 clamp(54px,6.2vw,92px)/1.04 "Noto Serif SC",serif;letter-spacing:-.05em;margin:18px 0 22px}.hero-copy h1 em{color:var(--gold);font-style:normal;position:relative}.hero-copy h1 em:after{content:"";position:absolute;left:3%;right:-3%;height:8px;bottom:6px;background:#a85d42bf;z-index:-1;transform:rotate(-2deg)}.hero-copy>p{max-width:500px;font:300 16px/2 "Noto Serif SC",serif;color:#f4ebdda8;letter-spacing:.06em}.hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:22px}.primary{border:0;background:var(--gold);color:var(--ink);padding:14px 20px;display:flex;align-items:center;justify-content:center;gap:12px;font-weight:600}.primary svg{width:18px}.text-button{border:1px solid rgba(244,235,221,.2);background:transparent;color:var(--paper);padding:13px 16px;display:flex;align-items:center;gap:8px}.text-button svg{width:16px}.full{width:100%}.hero-meta{display:flex;gap:26px;margin-top:clamp(20px,3.4vh,38px);font-size:10px;color:#f4ebdd73;letter-spacing:.1em}.hero-meta span{display:grid;gap:5px}.hero-meta b{font:500 17px "Noto Serif SC";color:var(--paper)}.hero-book{position:relative;min-height:650px;background:#e9e2d6}.hero-book:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(16,42,36,.14),transparent 22%),linear-gradient(0deg,rgba(20,31,27,.08),transparent 30%)}.scene{width:100%;height:100%;min-height:420px;position:relative}.scene canvas{display:block}.scene-hint{position:absolute;right:22px;bottom:18px;color:#18201d75;font-size:10px;letter-spacing:.14em;pointer-events:none}.book-caption{position:absolute;left:28px;bottom:25px;z-index:2;color:var(--ink);display:flex;align-items:center;gap:13px}.book-caption>svg{width:34px;height:34px;stroke-width:1}.book-caption div{display:grid}.book-caption span{font-size:9px;letter-spacing:.2em;color:#7a6b59}.book-caption strong{font:600 14px "Noto Serif SC"}.panel-page{min-height:calc(100vh - 76px);background:var(--paper);color:var(--charcoal);padding:clamp(35px,6vw,76px) 7vw;display:grid;grid-template-columns:minmax(360px,.8fr) minmax(420px,1.2fr);gap:7vw}.form-column h1,.editor-sidebar h1{font:600 clamp(35px,4vw,56px)/1.18 "Noto Serif SC";letter-spacing:-.04em;margin:18px 0 34px}.form-column label,.control-section label{display:grid;gap:8px;margin-bottom:18px}.form-column label>span,.control-section label>span{font-size:11px;color:#776e63;letter-spacing:.08em}.form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:0 17px}input,textarea,select{border:0;border-bottom:1px solid #c9c0b3;background:transparent;color:var(--charcoal);padding:10px 2px;resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--ink);outline:0}.drop-zone{width:100%;min-height:160px;border:1px dashed #a99a85;background:#ffffff57;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#6e6458;margin-top:20px}.drop-zone.dragging{background:#e7dac5;border-color:var(--clay)}.drop-zone svg{color:var(--clay)}.drop-zone strong{color:var(--ink);font:600 17px "Noto Serif SC"}.drop-zone span{font-size:11px}.photo-board{border-left:1px solid #d7ccbd;padding-left:4vw;min-width:0}.board-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.board-heading div{display:grid;gap:6px}.board-heading span{font-size:10px;color:#887c6d;letter-spacing:.18em}.board-heading strong{font:600 22px "Noto Serif SC"}.photo-list{display:grid;gap:9px;max-height:calc(100vh - 210px);overflow:auto;padding-right:7px}.photo-row{display:grid;grid-template-columns:95px 1fr auto;gap:17px;align-items:center;background:#ece1d1;padding:9px}.photo-row img{width:95px;height:76px;object-fit:cover}.photo-row div:nth-child(2){display:grid;gap:4px}.photo-row small{font-size:9px;color:#8f806d;letter-spacing:.16em}.photo-row input{font:600 15px "Noto Serif SC";padding:5px 0}.row-actions{display:flex}.row-actions button{border:0;background:none;padding:6px;color:#766b5f}.row-actions svg{width:15px}.row-actions svg.active{fill:var(--gold);color:#9a7538}.row-actions button:disabled{opacity:.25}.editor-page{height:calc(100vh - 76px);display:grid;grid-template-columns:390px 1fr;background:var(--paper);color:var(--charcoal)}.editor-sidebar{padding:36px 30px;overflow:auto;border-right:1px solid #cfc4b4}.editor-sidebar h1{font-size:33px;margin-bottom:24px}.round-tabs{display:grid;gap:6px;margin-bottom:28px}.round-tabs button{border:0;background:transparent;padding:11px;display:grid;grid-template-columns:26px 22px 1fr;gap:8px;align-items:center;text-align:left;color:#786d61}.round-tabs button span{font-size:9px}.round-tabs button svg{width:16px}.round-tabs button b{font-weight:500}.round-tabs button.active{background:var(--ink);color:var(--paper)}.layer-card{border-top:1px solid #d3c7b8;padding:15px 0}.layer-card>div{display:flex;justify-content:space-between;font:600 14px "Noto Serif SC"}.layer-card svg{width:15px}.layer-card label{margin:12px 0}.layer-card label span{display:flex;justify-content:space-between}.layer-card i{font-style:normal;color:var(--clay)}input[type=range]{accent-color:var(--clay);padding:0;width:100%}.note,.instruction{font-size:11px;line-height:1.8;color:#837667;background:#eadfce;padding:12px}.editor-stage{position:relative;background:#e9e2d6;min-width:0}.editor-stage .scene{height:calc(100% - 64px)}.stage-toolbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid rgba(24,32,29,.12)}.stage-toolbar>div:first-child{display:grid}.stage-toolbar span{font-size:9px;letter-spacing:.16em;color:#7b6e5d}.stage-toolbar strong{font:600 14px "Noto Serif SC"}.view-presets{display:flex;gap:5px}.view-presets button{border:1px solid #b9ae9f;background:transparent;padding:6px 10px;font-size:10px;color:#514a42}.scene-controls{position:absolute;z-index:6;left:50%;bottom:23px;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:#102a24e8;backdrop-filter:blur(15px);padding:8px;border-radius:2px;color:var(--paper)}.icon-button{border:0;background:transparent;color:inherit;width:34px;height:34px;display:grid;place-items:center}.icon-button:hover{background:#ffffff1a}.icon-button:disabled{opacity:.3}.icon-button svg{width:17px}.page-count{font-size:10px;letter-spacing:.14em;padding:0 8px}.control-divider{width:1px;height:20px;background:#ffffff2b;margin:0 2px}.viewer{height:100vh;background:#e9e2d6;position:relative;overflow:hidden;color:var(--ink)}.viewer-title{position:absolute;z-index:4;top:30px;left:40px;max-width:340px;pointer-events:none}.viewer-title span{font-size:9px;letter-spacing:.2em;color:#786b5a}.viewer-title h1{font:600 28px "Noto Serif SC";margin:8px 0}.viewer-title p{font:400 12px "Noto Serif SC";color:#766c60}.viewer-tools{position:absolute;right:24px;top:24px;display:flex;z-index:5}.viewer-tools button{width:40px;height:40px;border:1px solid rgba(16,42,36,.2);background:#f4ebddb8;color:var(--ink);display:grid;place-items:center;backdrop-filter:blur(8px)}.viewer-tools svg{width:17px}.modal-backdrop{position:fixed;inset:0;z-index:60;background:#05100dbd;display:grid;place-items:center;padding:20px;backdrop-filter:blur(12px)}.library-modal{width:min(560px,100%);max-height:80vh;background:var(--paper);color:var(--ink);padding:28px;box-shadow:0 30px 100px #07130f}.modal-heading{display:flex;justify-content:space-between}.modal-heading span{font-size:9px;letter-spacing:.2em;color:#897b68}.modal-heading h2{font:600 28px "Noto Serif SC";margin:7px 0 20px}.modal-heading button{border:0;background:none}.library-list{display:grid;gap:8px;overflow:auto;max-height:420px;margin-bottom:15px}.library-list>button{border:1px solid #d3c7b7;background:#eee3d3;padding:8px;display:grid;grid-template-columns:72px 1fr 20px;align-items:center;gap:12px;text-align:left;color:var(--ink)}.library-list img{width:72px;height:57px;object-fit:cover}.library-list div{display:grid;gap:4px}.library-list strong{font:600 15px "Noto Serif SC"}.library-list span{font-size:10px;color:#776a5c}.library-list svg{width:15px}.toast{position:fixed;z-index:100;left:50%;bottom:30px;transform:translate(-50%);background:#f4ebdd;color:var(--ink);box-shadow:0 12px 45px #07130f;padding:12px 18px;display:flex;align-items:center;gap:8px;font-size:12px}.toast svg{width:16px;color:#54735f}.webgl-fallback{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink);gap:8px}.webgl-fallback span{font-size:12px;color:#756a5e}.music-player{position:fixed;left:22px;bottom:22px;z-index:90;display:flex;align-items:stretch;color:var(--paper);background:#102a24f0;border:1px solid rgba(199,164,103,.34);box-shadow:0 16px 48px #05120e47;backdrop-filter:blur(18px);transition:box-shadow .2s ease,background .25s ease;max-width:calc(100vw - 20px)}.music-player.is-dragging{box-shadow:0 22px 60px #05120e6b;user-select:none}.music-drag-handle{width:24px;flex:0 0 24px;border:0;border-right:1px solid rgba(244,235,221,.12);background:#c7a4671a;color:#f4ebdd85;display:grid;place-items:center;padding:0;cursor:grab;touch-action:none}.music-drag-handle:hover,.music-drag-handle:focus-visible{color:var(--gold);background:#c7a4672e}.is-dragging .music-drag-handle{cursor:grabbing;color:var(--gold)}.music-drag-handle svg{width:14px;pointer-events:none}.music-main{min-width:278px;border:0;background:transparent;color:inherit;padding:9px 11px;display:grid;grid-template-columns:38px 1fr 28px;align-items:center;gap:10px;text-align:left}.record{width:36px;height:36px;border:1px solid rgba(199,164,103,.65);border-radius:50%;display:grid;place-items:center;color:var(--gold);position:relative}.record:after{content:"";position:absolute;width:5px;height:5px;border-radius:50%;background:currentColor}.record svg{width:15px}.is-playing .record{animation:record-spin 5s linear infinite}.track-copy{display:grid;gap:2px;min-width:0}.track-copy small{font-size:8px;letter-spacing:.18em;color:#f4ebdd85}.track-copy strong{font:500 12px "Noto Serif SC";white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-copy em{font-style:normal;font-size:9px;color:#e0a78f}.play-state{display:grid;place-items:center}.play-state svg{width:17px}.volume-control{width:0;overflow:hidden;display:flex;align-items:center;gap:5px;border-left:1px solid transparent;transition:width .25s ease,padding .25s ease}.music-player:hover .volume-control,.music-player:focus-within .volume-control{width:126px;padding:0 10px;border-left-color:#f4ebdd1f}.volume-control button{border:0;background:transparent;color:var(--paper);padding:4px;display:grid}.volume-control svg{width:15px}.volume-control input{width:72px;border:0;padding:0;accent-color:var(--gold)}@keyframes record-spin{to{transform:rotate(360deg)}}@media (max-width:900px){.topbar{height:64px;padding:0 16px}.brand div{display:none}.topbar nav{display:none;position:absolute;top:64px;left:0;right:0;background:#102a24;padding:12px;flex-direction:column;border-bottom:1px solid rgba(255,255,255,.12)}.topbar nav.open{display:flex}.top-actions .save-action,.top-actions .export-action{display:none}.mobile-menu{display:grid!important;padding:6px!important}.home{height:auto;min-height:calc(100vh - 64px);grid-template-columns:1fr;grid-template-rows:auto 55vh}.hero-copy{overflow:visible;justify-content:flex-start}.hero-copy{padding:44px 25px 96px}.hero-copy:after{display:none}.hero-copy h1{font-size:61px}.hero-book{min-height:420px}.panel-page{min-height:calc(100vh - 64px);grid-template-columns:1fr;padding:34px 20px}.photo-board{border-left:0;border-top:1px solid #d7ccbd;padding:28px 0}.photo-list{max-height:none}.editor-page{height:auto;min-height:calc(100vh - 64px);grid-template-columns:1fr}.editor-sidebar{border-right:0;order:2}.editor-stage{height:62vh;min-height:480px;order:1}.editor-stage .scene{height:calc(100% - 58px)}.stage-toolbar{height:58px}.viewer-title{left:18px;top:18px}.viewer-title h1{font-size:20px}.viewer-title p{display:none}.viewer-tools{right:14px;top:14px}.viewer-tools button{width:36px;height:36px}}@media (max-width:560px){.form-grid.two{grid-template-columns:1fr}.photo-row{grid-template-columns:68px 1fr}.photo-row img{width:68px;height:62px}.row-actions{grid-column:2;justify-content:flex-end}.view-presets button{padding:5px 7px}.stage-toolbar{padding:0 12px}.hero-actions{display:grid}.hero-meta{gap:15px}.scene-controls{bottom:14px}.editor-sidebar{padding:30px 20px}.music-player{left:10px;bottom:12px;max-width:calc(100vw - 20px)}.music-drag-handle{width:22px;flex-basis:22px}.music-main{min-width:0;width:calc(100vw - 44px);max-width:250px;grid-template-columns:34px minmax(0,1fr) 24px}.record{width:32px;height:32px}.music-player:hover .volume-control,.music-player:focus-within .volume-control{width:0;padding:0;border-left-color:transparent}}.upload-note{margin:10px 0 0;color:var(--clay);font-size:11px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page-scrubber{width:clamp(86px,12vw,150px);display:flex;align-items:center;padding:0 5px}.page-scrubber input{height:18px;cursor:ew-resize;accent-color:var(--gold)}@media (max-width:560px){.scene-controls{max-width:calc(100vw - 20px);gap:2px}.page-scrubber{width:76px;padding:0}.control-divider{display:none}}@media (prefers-reduced-motion:reduce){*:not(.deck-slide):not(.deck-caption-inner):not(.deck-track):not(.deck-stage),*:not(.deck-slide):not(.deck-caption-inner):not(.deck-track):not(.deck-stage):before,*:not(.deck-slide):not(.deck-caption-inner):not(.deck-track):not(.deck-stage):after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.deck{--deck-foot: 76px;--tilt-x: 0deg;--tilt-y: 0deg;position:relative;width:100%;height:100%;overflow:hidden;background:radial-gradient(120% 90% at 50% 8%,#f7f1e7,#efe7d9 55%,#e7ddcc);cursor:pointer;touch-action:pan-y;user-select:none;-webkit-tap-highlight-color:transparent;outline:none}.deck:focus-visible{box-shadow:inset 0 0 0 2px #c7a4678c}.deck-stage{position:absolute;inset:0;perspective:1500px;perspective-origin:50% 44%}.deck-track{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform .48s cubic-bezier(.2,.6,.25,1)}.deck.is-dragging .deck-track{transition-duration:.9s}.deck-slide{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transform-style:preserve-3d;backface-visibility:hidden;opacity:0;pointer-events:none;will-change:transform,opacity}.deck-slide img{display:block;width:auto;height:auto;max-width:90%;max-height:82%;padding:7px;border-radius:4px;background:linear-gradient(160deg,#fdfaf3,#f4efe6 70%,#eee7da);box-shadow:0 24px 48px -16px #1f2a2466,0 4px 12px -4px #1f2a2438,inset 0 0 0 1px #1f2a240f;-webkit-user-drag:none;user-select:none}.deck-slide.is-active{z-index:3;opacity:1;animation:deck-flip-in .64s cubic-bezier(.24,.8,.28,1) both}@keyframes deck-flip-in{0%{opacity:0;transform:translate3d(calc(var(--flip-dir, 1) * 16%),-3%,-150px) rotateY(calc(var(--flip-dir, 1) * 32deg)) rotate(calc(var(--flip-dir, 1) * -1.6deg))}60%{opacity:1}to{opacity:1;transform:translateZ(0) rotateY(0) rotate(0)}}.deck-slide.is-leaving{z-index:4;opacity:1;animation:deck-flip-out .64s cubic-bezier(.5,.05,.68,.6) both;pointer-events:none}.deck-slide.is-leaving.is-backward{z-index:2}@keyframes deck-flip-out{0%{opacity:1;transform:translateZ(0) rotateY(0) rotate(0)}to{opacity:0;transform:translate3d(calc(var(--flip-dir, 1) * -18%),2.5%,-180px) rotateY(calc(var(--flip-dir, 1) * -30deg)) rotate(calc(var(--flip-dir, 1) * 2deg))}}.deck-slide.is-back-1{z-index:2;opacity:.6;transform:translate3d(2.6%,1.8%,-110px) rotateY(calc(-6deg * var(--flip-dir, 1)));filter:brightness(.95) saturate(.92);transition:transform .64s cubic-bezier(.24,.8,.28,1),opacity .52s ease}.deck-slide.is-back-2{z-index:1;opacity:.3;transform:translate3d(5%,3.4%,-220px) rotateY(calc(-10deg * var(--flip-dir, 1)));filter:brightness(.9) saturate(.85);transition:transform .64s cubic-bezier(.24,.8,.28,1),opacity .52s ease}.deck-slide.is-back-1 img,.deck-slide.is-back-2 img{pointer-events:none}.deck-caption{position:absolute;left:50%;bottom:0;z-index:6;width:min(92%,760px);min-height:62px;padding:8px 0 12px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;pointer-events:none}.deck-caption-inner{display:grid;gap:3px;justify-items:center;animation:caption-in .48s ease .14s both}@keyframes caption-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}.deck-caption strong{font:500 14px/1.5 "Noto Serif SC",Songti SC,SimSun,serif;letter-spacing:.08em;color:#2c3a33;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.deck-caption small{font-size:11.5px;line-height:1.6;letter-spacing:.05em;color:#2c3a3394;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.deck-dots{position:absolute;left:50%;bottom:70px;transform:translate(-50%);display:flex;align-items:center;gap:6px;z-index:7}.deck-dots button{width:6px;height:6px;padding:0;border:0;border-radius:50%;background:#2c3a3338;transition:background .24s ease,transform .24s ease}.deck-dots button.is-on{background:#b08d4f;transform:scale(1.4)}.deck-counter{position:absolute;left:50%;bottom:70px;transform:translate(-50%);z-index:7;display:grid;justify-items:center;gap:6px;pointer-events:none}.deck-counter span{font:500 10px/1 "Noto Serif SC",serif;letter-spacing:.22em;color:#2c3a339e}.deck-counter i{display:block;width:clamp(96px,14vw,180px);height:2px;background:#2c3a3329;transform-origin:left center;transition:transform .52s cubic-bezier(.22,.68,.24,1)}.deck-arrow{position:absolute;top:46%;transform:translateY(-50%);z-index:8;width:42px;height:42px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:linear-gradient(180deg,#fffdf8,#f4eee2 60%,#e9e0cf);color:#2c3a33;box-shadow:0 10px 22px -8px #1f2a2461,0 2px 5px -1px #1f2a242e,inset 0 1px #ffffffe6,inset 0 -2px 3px #1f2a2414;opacity:0;transition:opacity .22s ease,transform .18s ease,box-shadow .18s ease}.deck-arrow svg{width:17px;height:17px;filter:drop-shadow(0 1px 0 rgba(255,255,255,.8))}.deck-arrow:hover{opacity:1;transform:translateY(-50%) scale(1.06);box-shadow:0 14px 28px -8px #1f2a2470,0 2px 5px -1px #1f2a242e,inset 0 1px #ffffffe6,inset 0 -2px 3px #1f2a2414}.deck-arrow:active{transform:translateY(-50%) scale(.94);box-shadow:0 4px 10px -4px #1f2a2459,inset 0 1px 3px #1f2a2429}.deck-arrow:disabled{opacity:0!important;pointer-events:none}.deck:hover .deck-arrow,.deck:focus-within .deck-arrow{opacity:.95}.deck-prev{left:3.5%}.deck-next{right:3.5%}.deck--empty{display:grid;place-items:center;cursor:default}.deck--empty p{font:400 12px/1.8 "Noto Serif SC",serif;letter-spacing:.14em;color:#2c3a3380}.deck--hero{--deck-foot: 84px}.deck--hero .deck-slide{align-items:flex-start;padding-top:5%}.deck--hero .deck-slide img{max-width:88%;max-height:82%}.deck--hero .deck-caption{min-height:66px;padding-top:10px}.deck--hero .deck-dots,.deck--hero .deck-counter{bottom:78px}.deck--stage{--deck-foot: 72px}.deck--stage .deck-slide{align-items:flex-start;padding-top:3.5%}.deck--stage .deck-slide img{max-width:92%;max-height:84%}.deck--stage .deck-caption{min-height:58px}.deck--stage .deck-dots,.deck--stage .deck-counter{bottom:64px}.deck--stage .deck-arrow{top:44%}.deck--viewer{--deck-foot: 108px}.deck--viewer .deck-slide img{max-width:min(76vw,1520px);max-height:64vh}.deck--viewer .deck-caption{min-height:78px;bottom:2.5%}.deck--viewer .deck-caption strong{font-size:16px}.deck--viewer .deck-dots,.deck--viewer .deck-counter{bottom:106px}.deck--viewer .deck-arrow{top:44%;width:46px;height:46px}@media (max-width: 900px){.deck{--deck-foot: 64px}.deck-slide img{max-width:92%;max-height:70%}.deck-caption{min-height:56px;padding:6px 0 10px}.deck-dots,.deck-counter{bottom:62px}.deck--hero{--deck-foot: 72px}.deck--hero .deck-slide{padding-top:4%}.deck--hero .deck-slide img{max-width:94%;max-height:70%}.deck--hero .deck-caption{min-height:60px}.deck--hero .deck-dots,.deck--hero .deck-counter{bottom:68px}.deck--viewer .deck-slide{padding-top:0;align-items:center}.deck--viewer .deck-slide img{max-width:90vw;max-height:58vh}.deck--viewer .deck-caption{bottom:13%;min-height:60px}.deck--viewer .deck-dots,.deck--viewer .deck-counter{bottom:calc(13% + 58px)}.deck-arrow{width:36px;height:36px}.deck-arrow svg{width:15px;height:15px}}@media (prefers-reduced-motion: reduce){.deck-track{transition:none;transform:none}.deck-slide.is-back-1,.deck-slide.is-back-2{transition:none}}.save-state{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.12em;color:#f4ebdd80;padding-right:4px}.save-state svg{width:13px;height:13px}.save-state.saved{color:#9ac4a8e6}.save-state.local{color:#e0a78f}.save-state.saving{color:#f4ebdd6b}.hero-book .book-caption{bottom:96px}.hero-shelf{margin-top:18px;padding-top:14px;border-top:1px solid rgba(244,235,221,.12);max-width:520px;border-radius:3px;transition:box-shadow .32s ease,background .32s ease}.hero-shelf.is-highlight{box-shadow:0 0 0 1px #c7a46799;background:#c7a46712}.hero-shelf-head{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.2em;color:#f4ebdd73;margin-bottom:10px}.hero-shelf-tools{display:flex;gap:6px}.hero-shelf-tools button{width:24px;height:24px;display:grid;place-items:center;padding:0;border:1px solid rgba(244,235,221,.14);border-radius:2px;background:transparent;color:#f4ebdd8c;transition:color .18s ease,border-color .18s ease}.hero-shelf-tools button:hover{color:var(--gold);border-color:#c7a4678c}.hero-shelf-tools svg{width:12px;height:12px}.spinning{animation:spin 1.1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.shelf-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.shelf-card{position:relative;min-width:0}.shelf-open{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:9px;width:100%;padding:6px;border:1px solid rgba(244,235,221,.12);border-radius:2px;background:#f4ebdd0a;color:#f4ebddc7;text-align:left;transition:background .18s ease,border-color .18s ease,transform .18s ease}.shelf-open:hover{background:#f4ebdd1a;border-color:#c7a46773}.shelf-open img{width:52px;height:40px;object-fit:cover;border-radius:1px}.shelf-noimg{display:block;width:52px;height:40px;background:#f4ebdd1a;border-radius:1px}.shelf-open div{min-width:0}.shelf-open strong{display:block;font:500 12px/1.4 "Noto Serif SC",serif;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.shelf-open small{display:block;margin-top:2px;font-size:9.5px;letter-spacing:.05em;color:#f4ebdd6b;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.shelf-card.is-current .shelf-open{border-color:#c7a467b8;background:#c7a46721}.shelf-card.is-current .shelf-open strong{color:var(--paper)}.shelf-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;display:grid;place-items:center;padding:0;border:0;border-radius:2px;background:#102a24b8;color:#f4ebdd8c;opacity:0;transition:opacity .18s ease,color .18s ease}.shelf-card:hover .shelf-remove,.shelf-remove:focus-visible{opacity:1}.shelf-remove:hover{color:#e0a78f}.shelf-remove svg{width:12px;height:12px}.shelf-empty{margin:6px 0 0;font-size:11px;line-height:1.8;color:#f4ebdd6b}.shelf-hint{margin:8px 0 0;font-size:10px;letter-spacing:.06em;color:#f4ebdd4d}.inline-actions{display:flex;flex-wrap:wrap;gap:7px;margin:6px 0 14px}.inline-actions .text-button{border:1px solid #c9bdad;color:#514a42;padding:8px 11px;font-size:11.5px;background:#fff6}.inline-actions .text-button:disabled{opacity:.42;cursor:not-allowed}.inline-actions .text-button.danger{color:#a85d42;border-color:#d8b8a8}.inline-actions .text-button svg{width:14px;height:14px}.inline-actions .text-button .active{color:var(--gold)}.preset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:16px}.preset-grid button{border:1px solid #c1b5a5;background:transparent;color:#514a42;padding:8px 4px;font-size:11px}.preset-grid button.active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.switch-row{display:flex!important;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #d3c7b8;border-bottom:1px solid #d3c7b8;padding:11px 0}.switch-row>span{display:flex;align-items:center;gap:7px;font-size:11px;color:#776e63;letter-spacing:.08em}.switch-row svg{width:13px;height:13px}.switch-row input{width:38px;height:20px;accent-color:var(--ink);border:0}.control-section code{font-size:10.5px;background:#18201d14;padding:1px 5px;border-radius:2px}.editor-stage{display:flex;flex-direction:column}.stage-canvas{position:relative;flex:1;min-height:0;overflow:hidden}.stage-canvas>.deck,.stage-canvas>.scene{position:absolute;inset:0;width:auto;height:auto}.viewer>.deck{position:absolute;inset:0;z-index:1}.viewer .scene{height:100%}.stage-loading{position:absolute;inset:0;display:grid;place-items:center;font:400 12px/1.8 "Noto Serif SC",serif;letter-spacing:.16em;color:#18201d80;background:#e9e2d6}.icon-button.is-on{color:var(--gold)}.stage-count{font-size:10px;letter-spacing:.14em;color:#7a6b59}@media (max-width: 900px){.save-state{display:none}.stage-canvas{min-height:300px}.hero-shelf{margin-top:16px;max-width:none}.hero-shelf-tools button{width:26px;height:26px}}@media (max-width: 560px){.preset-grid{grid-template-columns:repeat(2,1fr)}.shelf-grid{grid-template-columns:1fr}.shelf-open{grid-template-columns:46px minmax(0,1fr)}.shelf-open img,.shelf-noimg{width:46px;height:36px}.shelf-remove{opacity:1}}button{transition:transform .16s ease,box-shadow .18s ease,background .2s ease,border-color .2s ease,color .2s ease}.primary{border-radius:10px;background:linear-gradient(180deg,#e3c78e 0%,var(--gold) 52%,#b08a4f 100%);color:#241c0f;box-shadow:0 14px 28px -10px #c7a46780,0 4px 10px -3px #00000059,inset 0 1px #ffffffa6,inset 0 -2px #60461e59;text-shadow:0 1px 0 rgba(255,255,255,.35)}.primary:hover{transform:translateY(-2px);background:linear-gradient(180deg,#ecd39d,#d0ac6e 52%,#b8935a);box-shadow:0 18px 34px -10px #c7a46799,0 6px 14px -3px #0006,inset 0 1px #ffffffb3,inset 0 -2px #60461e59}.primary:active{transform:translateY(1px);box-shadow:0 6px 14px -6px #0006,inset 0 2px 4px #60461e66}.text-button,.top-actions button{border-radius:10px;background:linear-gradient(180deg,#f4ebdd1f,#f4ebdd0d);border-color:#f4ebdd3d;box-shadow:0 10px 22px -10px #00000080,inset 0 1px #ffffff29,inset 0 -1px #0000002e}.text-button:hover,.top-actions button:hover{transform:translateY(-2px);background:linear-gradient(180deg,#f4ebdd2e,#f4ebdd14);border-color:#c7a46780;box-shadow:0 14px 26px -10px #0000008c,0 0 0 1px #c7a4672e,inset 0 1px #fff3,inset 0 -1px #0000002e}.text-button:active,.top-actions button:active{transform:translateY(1px);box-shadow:inset 0 2px 5px #00000059}.top-actions .export-action{background:linear-gradient(180deg,#e3c78e 0%,var(--gold) 52%,#b08a4f 100%);border-color:transparent;color:#241c0f;box-shadow:0 12px 24px -9px #c7a46780,inset 0 1px #fff9,inset 0 -2px #60461e52}.top-actions .export-action:hover{transform:translateY(-2px);background:linear-gradient(180deg,#ecd39d,#d0ac6e 52%,#b8935a)}.top-actions .export-action:active{transform:translateY(1px)}.topbar nav button{border-radius:999px;background:transparent}.topbar nav button:hover,.topbar nav button.active{background:linear-gradient(180deg,#f4ebdd24,#f4ebdd0f);box-shadow:inset 0 1px #ffffff24,0 6px 14px -8px #0000008c}.topbar nav button.active{color:var(--gold);box-shadow:inset 0 1px #ffffff24,inset 0 0 0 1px #c7a46752,0 6px 14px -8px #0000008c}.hero-shelf-tools button{border-radius:7px;background:#f4ebdd0f;box-shadow:inset 0 1px #ffffff1a}.hero-shelf-tools button:hover{transform:translateY(-1px);background:#c7a46724;box-shadow:inset 0 1px #ffffff24}.hero-shelf-tools button:active{transform:translateY(1px);box-shadow:inset 0 1px 3px #0000004d}.shelf-open{border-radius:9px;background:linear-gradient(180deg,#f4ebdd17,#f4ebdd09);border-color:#f4ebdd29;box-shadow:0 8px 18px -10px #00000073,inset 0 1px #ffffff1a}.shelf-open:hover{transform:translateY(-2px);background:linear-gradient(180deg,#f4ebdd26,#f4ebdd12);border-color:#c7a4678c;box-shadow:0 12px 24px -10px #00000080,inset 0 1px #ffffff24}.shelf-open:active{transform:translateY(1px);box-shadow:inset 0 2px 5px #00000052}.shelf-open img{border-radius:4px;box-shadow:0 3px 8px -2px #0006}.shelf-noimg{border-radius:4px}.shelf-remove{border-radius:6px}.scene-controls{border-radius:12px;box-shadow:0 16px 34px -14px #0009,inset 0 1px #ffffff14}.icon-button{border-radius:8px}.icon-button:not(:disabled):hover{background:linear-gradient(180deg,#f4ebdd29,#f4ebdd12);box-shadow:inset 0 1px #ffffff24}.icon-button:not(:disabled):active{transform:scale(.92);box-shadow:inset 0 1px 4px #00000059}.inline-actions .text-button{border-radius:8px;background:linear-gradient(180deg,#fdfaf3,#f1e9da);border-color:#c6b9a7;box-shadow:0 6px 14px -6px #3f332659,inset 0 1px #fff}.inline-actions .text-button:hover{transform:translateY(-1px);border-color:#ab9878;box-shadow:0 9px 18px -6px #3f332666,inset 0 1px #fff}.inline-actions .text-button:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #3f332633}.inline-actions .text-button:disabled{transform:none}.preset-grid button{border-radius:8px;background:linear-gradient(180deg,#fdfaf3,#f1e9da);border-color:#c6b9a7;box-shadow:0 5px 12px -6px #3f332652,inset 0 1px #fff}.preset-grid button:hover{transform:translateY(-1px);border-color:#ab9878}.preset-grid button:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #3f332633}.preset-grid button.active,.round-tabs button.active{background:linear-gradient(180deg,#24413a 0%,var(--ink) 60%,#0b1f1a 100%);color:var(--paper);border-color:transparent;box-shadow:0 8px 18px -8px #102a24a6,inset 0 1px #ffffff29,inset 0 -2px #0000004d}.round-tabs button{border-radius:10px}.round-tabs button:not(.active):hover{background:linear-gradient(180deg,#18201d0f,#18201d05);box-shadow:inset 0 1px #fff9}.round-tabs button.active{transform:none}.view-presets button{border-radius:8px;background:linear-gradient(180deg,#fdfaf3,#efe7d8);border-color:#b9ae9f;box-shadow:0 4px 10px -5px #3f332659,inset 0 1px #fff}.view-presets button:hover{transform:translateY(-1px);border-color:#9a8c78}.view-presets button:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #3f332638}.view-presets button.active{background:linear-gradient(180deg,#24413a 0%,var(--ink) 60%,#0b1f1a 100%);color:var(--paper);border-color:transparent;box-shadow:0 6px 14px -7px #102a2499,inset 0 1px #ffffff24}.viewer-tools button{border-radius:11px;background:linear-gradient(180deg,#fdfaf3eb,#f0e8dae0);border:0;box-shadow:0 12px 26px -10px #1f2a2480,0 2px 6px -2px #1f2a2440,inset 0 1px #fff,inset 0 -2px 3px #1f2a2412}.viewer-tools button:hover{transform:translateY(-2px);box-shadow:0 16px 30px -10px #1f2a248c,0 2px 6px -2px #1f2a2440,inset 0 1px #fff}.viewer-tools button:active{transform:translateY(1px);box-shadow:0 4px 10px -5px #1f2a2473,inset 0 2px 4px #1f2a242e}.row-actions button{border-radius:7px}.row-actions button:not(:disabled):hover{background:#18201d12;box-shadow:inset 0 1px #ffffffb3}.row-actions button:not(:disabled):active{transform:scale(.92)}.drop-zone{border-radius:12px;box-shadow:inset 0 1px #fffc,0 8px 20px -12px #3f33264d}.toast{border-radius:10px;box-shadow:0 16px 40px -12px #07130f8c,inset 0 1px #fffc}.deck-dots button.is-on{box-shadow:0 0 0 3px #b08d4f38}
