@charset "UTF-8";
:root{--paper:#f5f0e7;--ink:#302d27;--muted:#847d70;--red:#a63829;--red-dark:#86291f;--line:#ddd5c7;--gold:#aa8653;--serif:"Kaiti TC","STKaiti","Songti TC","Noto Serif TC",serif;--sans:"PingFang TC","Microsoft JhengHei",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;opacity:.025;pointer-events:none;z-index:10;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.7' d='M0 0h150v150H0z'/%3E%3C/svg%3E")}
button,a,input{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button{border:0}button:disabled{cursor:default}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--red);outline-offset:5px}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.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}[hidden]{display:none!important}
.site-shell{max-width:1536px;margin:auto;padding:0 64px}.site-header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink)}.brand-mark{width:47px;height:47px;background:var(--red);color:#f6e8ce;border-radius:3px;display:grid;place-items:center}.brand-mark svg{width:35px;height:35px;stroke-width:1.15}.brand strong{font-family:var(--serif);font-size:25px;letter-spacing:6px;font-weight:600;display:block}.brand small{font-size:8px;letter-spacing:1.9px;display:block;margin-top:5px;color:var(--muted)}nav{display:flex;align-items:center;gap:28px}.nav-button{background:none;display:flex;align-items:center;gap:9px;font-size:12px;color:#565046;padding:10px 0;letter-spacing:.5px}.nav-button:hover,.text-button:hover{color:var(--red)}.nav-button svg{width:17px;height:17px}.tiny-plus{font-size:20px;color:var(--gold);font-weight:300}.count{font-family:var(--sans);border:1px solid var(--line);border-radius:50%;min-width:19px;height:19px;font-size:10px;display:grid;place-items:center}.nav-divider{height:21px;width:1px;background:var(--line)}.icon-button{background:none;width:36px;height:36px;display:grid;place-items:center;color:var(--muted);border-radius:50%}.icon-button:hover{background:#eae2d5;color:var(--red)}.icon-button svg{width:19px;height:19px}
.experience{display:grid;grid-template-columns:44% 56%;min-height:685px;position:relative}.intro{padding-top:60px;position:relative;z-index:2}.eyebrow{font-size:10px;letter-spacing:3px;color:var(--gold);display:flex;align-items:center;gap:12px;font-weight:500}.little-line{width:26px;height:1px;background:var(--gold)}h1{font-family:var(--serif);font-size:65px;line-height:1.32;font-weight:500;letter-spacing:3px;margin:20px 0 20px;position:relative;display:inline-block}h1>span:first-of-type{color:var(--red)}.title-seal{font-family:var(--serif);position:absolute;right:-40px;top:23px;border:1px solid var(--red);color:var(--red);font-size:13px;line-height:1.25;letter-spacing:2px;padding:5px 3px 5px 5px;border-radius:2px;transform:rotate(5deg);opacity:.8}.intro-copy{font-size:13px;line-height:1.95;letter-spacing:.5px;color:#847a6b;margin:0 0 30px}.wish-form{max-width:425px}.field-heading{display:flex;align-items:center;gap:9px;margin-bottom:14px}.step-label{font-family:Georgia,serif;font-size:11px;color:var(--red);border:1px solid #d6bca9;border-radius:50%;width:21px;height:21px;display:grid;place-items:center}h2{margin:0}.field-heading h2{font-size:12px;font-weight:500;letter-spacing:1px}.field-note{font-size:10px;color:#9d9588;margin-left:auto}.categories{display:flex;gap:7px}.category{display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);padding:9px 10px;color:#70695d;background:transparent;border-radius:4px;font-size:11px;white-space:nowrap;transition:background .18s,border-color .18s,transform .18s;flex:1}.category svg{width:14px;height:14px}.category:hover{border-color:#b77760;transform:translateY(-2px)}.category.selected{background:#eee0d3;border-color:#bd715b;color:var(--red)}.wish-input{display:flex;border-bottom:1px solid var(--line);margin-top:13px;align-items:center;padding:9px 0 12px;gap:12px}.wish-input input{border:0;background:transparent;width:100%;font-size:11px;padding:5px 0;color:var(--ink);min-width:0}.wish-input input::placeholder{color:#a1988b;letter-spacing:.4px}.wish-input>span:last-child{font-family:var(--serif);font-size:11px;border:1px solid #d8cdbd;padding:3px;color:#b2a38f;white-space:nowrap}.shake-heading{margin-top:25px;margin-bottom:12px}.shake-button{width:100%;height:56px;border-radius:4px;background:var(--red);color:#fff6e4;display:flex;align-items:center;justify-content:center;gap:13px;font-size:14px;letter-spacing:2px;position:relative;overflow:hidden;user-select:none;touch-action:none;box-shadow:0 5px 14px #93312314;transition:background .2s,transform .2s}.shake-button:hover{background:var(--red-dark);transform:translateY(-1px)}.shake-button.shaking{background:#8c2b20;transform:translateY(1px)}.shake-button>svg,.shake-button>span:not(.button-progress){z-index:1}.shake-button .button-arrow{position:absolute;right:19px;width:19px;opacity:.7}.button-progress{position:absolute;inset:0;background:#d9ad6535;transform:scaleX(0);transform-origin:left;pointer-events:none}.button-note{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:10px;font-size:9px;color:#9b9182;letter-spacing:.2px;min-height:22px}.button-note button{background:none;color:#83715e;font-size:10px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap;padding:5px 0 5px 8px}.quiet-note{display:flex;align-items:center;gap:9px;color:#999080;font-size:10px;letter-spacing:.7px;margin-top:29px}.small-star{color:var(--gold);font-size:17px}
.scene-area{position:relative;min-width:0;margin-right:-36px}.scene-halo{position:absolute;top:51px;left:5%;width:89%;aspect-ratio:1/1;border-radius:50% 50% 42% 42%;background:radial-gradient(ellipse at 50% 48%,#e5cdb55a 0%,#ddc1a647 44%,#eadbca4a 66%,#f1e9df12 73%)}.scene-halo:after{content:"";position:absolute;inset:20px;border:1px solid #ccb49a3b;border-radius:50%}.scene-top-label{position:absolute;top:38px;left:47px;display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:1px;color:#8b7b64;z-index:2}.label-en{font-size:7px;letter-spacing:1.7px;margin-left:5px;color:#b1a28e}.live-dot{height:4px;width:4px;border-radius:50%;background:#ae8d5d;box-shadow:0 0 0 3px #ae8d5d12}#scene{position:absolute;inset:32px -28px 40px -20px;touch-action:pan-y}#scene canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y}#scene canvas:active{cursor:grabbing}.scene-side-text{position:absolute;right:18px;top:145px;writing-mode:vertical-rl;font-family:var(--serif);font-size:13px;letter-spacing:5px;color:#9f8d75;display:flex;align-items:center;gap:20px}.scene-side-text span{width:1px;height:35px;background:#c3b29c}.scene-caption{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;color:#9c8a72;font-size:9px;white-space:nowrap}.scene-caption>span{display:flex;align-items:center;gap:7px}.scene-caption svg{width:14px;height:14px;stroke-width:1}.scene-caption button{font-size:9px;background:none;color:#9c8a72;padding:6px 0}.scene-caption button span{font-size:12px;margin-left:5px}.scene-stamp{position:absolute;right:35px;bottom:84px;font-family:var(--serif);font-size:15px;line-height:1.25;padding:8px 5px;border:1px solid #b65d4666;color:#b65d4699;border-radius:2px;transform:rotate(-4deg)}#scene-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;font-family:var(--serif);letter-spacing:5px;color:var(--gold);font-size:20px}#scene-loading span{font-family:var(--sans);font-size:10px;letter-spacing:1px}
.ritual-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-around;align-items:center;padding:24px 15px;margin-top:8px;gap:20px}.ritual-strip>div{display:flex;align-items:center;gap:16px}.strip-number{font-family:var(--serif);color:#b5a284;font-size:25px}.ritual-strip p{margin:0;display:flex;flex-direction:column;gap:6px}.ritual-strip strong{font-size:11px;letter-spacing:1px;font-weight:500}.ritual-strip p span{font-size:10px;color:#9a9183;letter-spacing:.4px}.strip-dot{color:#c4b8a7}footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0 26px;color:#a69b89;font-size:9px;letter-spacing:.4px}footer i{font-style:normal;margin:0 7px;color:#cec2b0}.footer-end{font-family:var(--serif);font-size:12px;color:#92816a}.footer-end>span{margin-left:12px;color:var(--gold)}
dialog{border:1px solid #d7c6ac;box-shadow:0 25px 100px #3a251238;background:var(--paper);color:var(--ink);border-radius:8px;max-height:90dvh;padding:36px;max-width:calc(100vw - 32px);overscroll-behavior:contain}dialog::backdrop{background:#2b231e66;backdrop-filter:blur(7px)}dialog[open]{animation:dialog-in .3s ease-out}.dialog-close{position:absolute;right:12px;top:12px}.result-dialog{width:560px;padding:30px 25px 20px;overflow-y:auto}.fortune-paper{border:1px solid #ccb696;padding:24px;position:relative}.fortune-paper:before{content:"";position:absolute;inset:4px;border:1px solid #dfd1bd;pointer-events:none}.paper-top{display:flex;justify-content:space-between;font-size:9px;letter-spacing:2px;color:#a28b69;padding-bottom:20px;border-bottom:1px solid var(--line)}.result-heading{display:flex;gap:15px;align-items:center;margin-top:24px}.fortune-number{font-family:var(--serif);font-size:12px;writing-mode:vertical-rl;color:var(--gold);letter-spacing:3px;border-right:1px solid #d5c3a8;padding-right:12px;max-height:110px}.result-heading>div{flex:1}.result-heading .eyebrow{font-size:8px;letter-spacing:2px;margin:0 0 8px}.result-heading h2{font-family:var(--serif);font-size:29px;font-weight:500;letter-spacing:2px}.fortune-rank{font-family:var(--serif);font-size:20px;color:var(--red);border:2px solid var(--red);padding:7px 5px;writing-mode:vertical-rl;letter-spacing:4px;transform:rotate(5deg);white-space:nowrap}.fortune-poem{text-align:center;font-family:var(--serif);font-size:25px;line-height:1.9;letter-spacing:5px;padding:25px 0;color:#81452e}.fortune-poem span{display:block}.reading{border-top:1px solid var(--line);padding-top:18px}.reading-label{font-size:9px;letter-spacing:2px;color:var(--gold)}.reading p{font-size:13px;line-height:1.9;margin:8px 0 18px}.small-action{background:#eae1d3;padding:14px;display:flex;gap:10px;border-radius:3px}.small-action svg{width:17px;color:var(--red)}.small-action span{font-size:9px;letter-spacing:1px;color:var(--red)}.small-action p{font-size:11px;line-height:1.7;margin:5px 0 0;color:#74614b}.fortune-bottom{display:flex;justify-content:space-between;margin-top:21px;font-size:8px;letter-spacing:1px;color:#a18d71}.fortune-bottom b{font-weight:500;color:#796045;margin-left:6px}.result-actions{display:flex;gap:8px;margin-top:20px;align-items:center;flex-wrap:wrap}.primary-small,.secondary-small{display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;border-radius:3px;padding:12px 16px}.primary-small{background:var(--red);color:#fff1dc}.primary-small:hover{background:var(--red-dark)}.primary-small svg{width:15px;height:15px}.secondary-small{background:transparent;border:1px solid var(--line);color:#7e6d57}.text-button{background:none;color:#867057;font-size:10px;padding:12px 0;margin-left:auto}.result-footnote{text-align:center;font-size:9px;color:#aa9c89;margin:15px 0 0}.result-wish{font-size:10px;margin:15px 0 -9px;color:#9d8b75;overflow-wrap:anywhere;font-style:italic;line-height:1.6}.info-dialog,.journal-dialog{width:580px}.info-dialog h2,.journal-dialog h2{font-family:var(--serif);font-size:30px;margin:20px 0;font-weight:500}.how-list{padding-left:24px;margin:30px 0}.how-list li{padding-left:10px;margin-bottom:25px}.how-list li::marker{color:var(--red);font-family:Georgia,serif}.how-list b{font-size:14px;font-weight:500}.how-list p{font-size:12px;line-height:1.9;color:var(--muted);margin:7px 0}.about-note{border-top:1px solid var(--line);padding-top:20px;font-size:11px;line-height:1.9;color:#968771;margin-bottom:25px}.journal-description{font-size:11px;line-height:1.8;color:var(--muted)}#journal-total{font-family:var(--sans);font-size:12px;color:var(--gold);margin-left:15px}.journal-empty{text-align:center;padding:50px 10px;color:#a68b6b}.journal-empty svg{width:38px;height:38px;stroke-width:1}.journal-empty h3{font-family:var(--serif);font-size:22px;font-weight:500;color:#72553c}.journal-empty p{font-size:12px;line-height:1.9}.journal-row{display:flex;gap:12px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.journal-row>button:first-child{flex:1;text-align:left;display:flex;align-items:center;gap:16px;background:none;color:var(--ink);padding:0}.journal-row .mini-rank{font-family:var(--serif);border:1px solid #bc8571;color:var(--red);padding:8px 4px;font-size:13px;writing-mode:vertical-rl;letter-spacing:2px}.journal-row strong{font-family:var(--serif);font-weight:500;font-size:22px;display:block;margin-bottom:6px}.journal-row small{font-size:9px;color:var(--muted)}.journal-row .remove-save{border:0;background:none;color:#a49075;font-size:10px;padding:10px}.journal-row .remove-save:hover{color:var(--red)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,15px);background:#3b3028;color:#f9e9d0;box-shadow:0 6px 24px #0002;padding:13px 22px;border-radius:4px;font-size:12px;letter-spacing:.5px;z-index:30;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;text-align:center;max-width:90vw}.toast.show{opacity:1;transform:translate(-50%,0)}.no-script{position:fixed;inset:auto 10% 20px;background:var(--red);color:white;padding:20px;z-index:100}#scene-fallback{position:absolute;inset:20% 5% 10%;text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:center}.fallback-sticks{font-family:serif;font-size:65px;color:#bd8a4c;letter-spacing:-10px;transform:rotate(-4deg);height:110px}.fallback-urn{height:200px;width:145px;background:var(--red);border:10px double #bd9559;border-radius:25% 25% 35% 35% / 8%;font-family:var(--serif);font-size:30px;padding-top:24px;line-height:1.3;color:#e8c178;box-shadow:15px 25px 30px #5e3b3022}#scene-fallback p{font-size:10px;color:var(--muted);margin-top:25px}
@keyframes dialog-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1450px){.experience{min-height:740px}.intro{padding-top:72px}h1{font-size:75px}.intro-copy{margin-bottom:35px}.wish-form{max-width:455px}.scene-halo{top:68px}.scene-top-label{top:49px}}
@media(max-width:1150px){.site-shell{padding:0 35px}.experience{grid-template-columns:46% 54%;min-height:660px}.intro{padding-top:45px}h1{font-size:55px}.intro-copy{font-size:12px}.categories{gap:5px}.category{padding:9px 8px;gap:5px;font-size:10px}.scene-area{margin-right:-15px}#scene{inset:40px -10px 35px -15px}.scene-top-label{left:25px}.scene-side-text{right:5px}.scene-stamp{right:10px}.label-en{display:none}.quiet-note{font-size:9px}.title-seal{right:-34px;font-size:11px}.footer-end{display:none}}
@media(max-width:800px){.site-shell{padding:0 25px}.site-header{height:88px}.brand-mark{width:40px;height:40px}.brand strong{font-size:22px}.brand small{font-size:6px;letter-spacing:1.5px}nav{gap:15px}.nav-button{font-size:11px}#how-button{display:none}.nav-divider{display:none}.experience{grid-template-columns:1fr 1fr;min-height:620px}h1{font-size:45px;letter-spacing:1px}.intro{padding-top:40px}.eyebrow{font-size:9px;letter-spacing:2px}.intro-copy{font-size:11px;line-height:1.9}.title-seal{right:-28px;top:15px;font-size:9px}.category{padding:9px 6px}.category svg{display:none}.field-heading h2{font-size:11px}.field-note{font-size:9px}.scene-area{margin-right:-15px}#scene{inset:70px -20px 50px -20px}.scene-halo{top:120px;width:95%;left:0}.scene-side-text{top:105px;font-size:11px;letter-spacing:4px}.scene-top-label{top:40px;left:25px}.scene-stamp{bottom:90px}.scene-caption{bottom:64px;font-size:8px;gap:10px}.button-note{font-size:8px}.quiet-note{margin-top:24px;font-size:8px}.ritual-strip{padding:20px 0;gap:12px}.ritual-strip>div{gap:9px}.strip-number{font-size:21px}.ritual-strip strong{font-size:10px}.ritual-strip p span{font-size:8px}footer{font-size:8px;gap:10px}}
@media(max-width:600px){.site-shell{padding:0 22px}.site-header{height:79px}.brand{gap:9px}.brand-mark{width:35px;height:35px}.brand-mark svg{width:28px;height:28px}.brand strong{font-size:20px;letter-spacing:4px}.brand small{font-size:5px;letter-spacing:1.15px}.nav-button svg{width:16px;height:16px}.nav-button{gap:6px;font-size:10px}nav{gap:8px}.icon-button{width:30px;height:32px}.count{font-size:9px;min-width:17px;height:17px}.experience{display:flex;flex-direction:column;min-height:0}.intro{padding-top:32px;display:contents}.intro>.eyebrow{order:0;margin-top:29px;font-size:8px}.intro>h1{order:1;margin:15px 0 12px;font-size:43px;line-height:1.25;letter-spacing:3px;width:fit-content}.title-seal{right:-38px;top:12px;font-size:10px}.intro-copy{order:2;font-size:11px;margin-bottom:0}.scene-area{order:3;height:375px;margin:0 -13px;flex:none}.scene-top-label{left:15px;top:17px;font-size:8px}.scene-halo{top:15px;width:87%;left:6%;max-height:355px}.scene-side-text{right:6px;top:80px;font-size:10px}.scene-stamp{font-size:11px;right:15px;bottom:50px;padding:6px 4px}#scene{inset:-8px -15px 0}.scene-caption{bottom:9px;left:50%;font-size:8px}.scene-caption button{font-size:8px}.wish-form{order:4;max-width:none;margin-top:12px}.field-heading{margin-bottom:12px}.field-heading h2{font-size:12px}.category{padding:12px 7px;font-size:11px}.category svg{display:block;width:13px;height:13px}.wish-input{margin-top:11px;padding-bottom:11px}.wish-input input{font-size:11px}.shake-heading{margin-top:22px}.shake-button{height:55px}.button-note{font-size:8px}.quiet-note{order:5;margin:22px 0 26px;font-size:9px;justify-content:center}.ritual-strip{padding:21px 0;gap:8px;margin-top:0}.ritual-strip>div{flex-direction:column;gap:8px;text-align:center}.strip-number{font-size:22px}.ritual-strip p span{font-size:8px;letter-spacing:0}.strip-dot{display:none}.ritual-strip strong{font-size:10px}.ritual-strip p{gap:7px}footer{padding:20px 0 24px;flex-direction:column;align-items:center;gap:7px;font-size:8px}.result-dialog{padding:28px 14px 18px}.fortune-paper{padding:20px 17px}.result-heading{gap:10px}.result-heading h2{font-size:24px;letter-spacing:1px}.fortune-number{font-size:11px;padding-right:8px}.fortune-rank{font-size:18px}.fortune-poem{font-size:23px;letter-spacing:3px}.reading p{font-size:12px}.result-actions{gap:6px}.primary-small,.secondary-small{font-size:10px;padding:12px}.text-button{font-size:9px}.info-dialog,.journal-dialog{padding:30px 23px}.info-dialog h2,.journal-dialog h2{font-size:27px}.fortune-bottom{font-size:7px;letter-spacing:0}.toast{font-size:11px;bottom:18px}}
@media(max-width:600px){#scene{inset:-8px -9px 0}}
@media(max-width:380px){.category svg{display:none}.category{font-size:10px;padding:12px 6px}h1{font-size:40px}.intro>h1{font-size:40px}.brand small{letter-spacing:.8px}.brand strong{font-size:19px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
