:root{--paper:#f6f3ec;--paper-white:#fcfbf7;--paper-shade:#ebe6da;--graphite-900:#2b2a27;--graphite-600:#5f5b54;--graphite-400:#8d887f;--graphite-200:#c9c4b9;--accent:#3f4a1e;--accent-soft:#e4e7d6;--font-hand:"LXGW WenKai TC", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--font-body:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='260' height='260'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .36  0 0 0 0 .34  0 0 0 0 .3  0 0 0 .11 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");--tape:#d6cdb69e;--focus-ring:2px solid var(--graphite-900)}@font-face{font-family:LXGW WenKai TC;src:url(/assets/lxgw-wenkai-tc-400-k5R8simA.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:LXGW WenKai TC;src:url(/assets/lxgw-wenkai-tc-700-YKhgJFNa.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans TC;src:url(/assets/noto-sans-tc-400-CgwaK2bJ.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans TC;src:url(/assets/noto-sans-tc-500-o2ZdLI_H.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}body{background-color:var(--paper);background-image:var(--grain);color:var(--graphite-900);font-family:var(--font-body);line-break:strict;text-autospace:normal;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility}button{font:inherit;color:inherit}:focus-visible{outline:var(--focus-ring);outline-offset:4px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.phrase{display:inline-block}.nowrap{white-space:nowrap}.scene{background-color:var(--paper);background-image:var(--grain);position:fixed;inset:0;overflow:clip}.scene--scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#2b2a2738 transparent;overflow:hidden auto}.veil{z-index:50;opacity:0;pointer-events:none;position:fixed;inset:0}.sketch{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.sketch :is(path,rect,circle,ellipse,line,polyline):not([fill]){fill:none}.ink{stroke:var(--graphite-900);stroke-linecap:round;stroke-linejoin:round}.ink-mid{stroke:var(--graphite-600);stroke-linecap:round;stroke-linejoin:round}.ink-faint{stroke:var(--graphite-200);stroke-linecap:round;stroke-linejoin:round}.tape{background:var(--tape);mix-blend-mode:multiply;pointer-events:none;width:92px;height:26px;position:absolute;box-shadow:0 1px 1px #0000000d}.btn{background:var(--accent);min-height:48px;color:var(--paper-white);font-family:var(--font-hand);letter-spacing:.12em;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0 34px;font-size:1.0625rem;font-weight:400;text-decoration:none;transition:background-color .2s,transform .2s;display:inline-flex}.btn:hover:not(:disabled){background:#323b17}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:default}.btn-ghost{min-height:44px;font-family:var(--font-hand);letter-spacing:.06em;color:var(--graphite-900);text-decoration:underline;-webkit-text-decoration-color:var(--graphite-400);text-decoration-color:var(--graphite-400);text-underline-offset:7px;cursor:pointer;background:0 0;border:0;align-items:center;padding:0 2px;font-size:.9375rem;text-decoration-thickness:1px;display:inline-flex}.btn-ghost:hover{-webkit-text-decoration-color:var(--graphite-900);text-decoration-color:var(--graphite-900)}.topbar{z-index:40;padding:max(10px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) 10px max(24px, env(safe-area-inset-left));color:var(--graphite-900);pointer-events:none;justify-content:space-between;align-items:center;gap:12px;transition:color 1.6s .3s;display:flex;position:fixed;top:0;left:0;right:0}.topbar--light{color:var(--paper-white)}.topbar__sig{font-family:var(--font-hand);letter-spacing:.04em;white-space:nowrap;align-items:baseline;gap:8px;margin:0;font-size:1.3125rem;font-weight:400;line-height:1;display:flex}.topbar__sig small{letter-spacing:.08em;opacity:.78;font-size:.8125rem}.topbar__nav{pointer-events:auto;align-items:center;gap:2px;display:flex}.topbar__button{min-height:44px;font-family:var(--font-body);letter-spacing:.08em;white-space:nowrap;cursor:pointer;opacity:.86;background:0 0;border:0;padding:0 11px;font-size:.8125rem;transition:opacity .2s}.topbar__button:hover{opacity:1}.topbar__button:focus-visible{outline-offset:-2px;opacity:1;outline-color:currentColor}.topbar__state{min-width:1em;display:inline-block}.topbar--backdrop-always,.topbar--backdrop-mobile{background:linear-gradient(#f6f3ecf7 0% 72%,#f6f3ec00 100%)}@media (width>=769px){.topbar--backdrop-mobile{background:0 0}}@media (width<=768px){.topbar{padding-left:max(18px, env(safe-area-inset-left));padding-right:max(8px, env(safe-area-inset-right))}.topbar__sig{font-size:1.125rem}.topbar__button{letter-spacing:.04em;padding:0 8px;font-size:.75rem}}@media (width<=600px){.topbar__sig small{display:none}}.loading{color:var(--graphite-600);place-items:center;display:grid}.loading__meter{flex-direction:column;align-items:center;gap:14px;display:flex}.loading__number{font-family:var(--font-body);font-variant-numeric:tabular-nums;letter-spacing:.32em;padding-left:.32em;font-size:.8125rem}.loading__line{background:var(--graphite-200);width:min(240px,56vw);height:1px;display:block;position:relative;overflow:hidden}.loading__fill{background:var(--graphite-900);transform-origin:0;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.topbar,.topbar__button,.btn{transition:none}}.about__page{max-width:1080px;padding:120px 40px max(90px, env(safe-area-inset-bottom));margin:0 auto}.about__label{font-family:var(--font-body);letter-spacing:.34em;color:var(--graphite-600);margin:0;font-size:.75rem;font-weight:500;line-height:1}.about__intro{grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:64px;display:grid}.about__story{max-width:36rem}.about__title{font-family:var(--font-hand);letter-spacing:.05em;outline:none;margin:16px 0 24px;font-size:2.875rem;font-weight:700;line-height:1.25}.about__text{color:var(--graphite-900);margin:0 0 14px;font-size:1rem;line-height:2}.about__text:last-child{margin-bottom:0}.about__note{background-color:var(--paper-white);background-image:var(--grain);margin:0;padding:44px 36px 30px;position:relative;transform:rotate(1.4deg);box-shadow:0 2px #00000008,0 14px 30px -18px #28241e73}.about__note-tape{top:-12px;left:50%;transform:translate(-50%)rotate(-3deg)}.about__voice{font-family:var(--font-hand);letter-spacing:.04em;color:var(--graphite-900);margin:0;font-size:1.375rem;line-height:1.75}.about__note-sign{font-family:var(--font-hand);text-align:right;color:var(--graphite-600);margin-top:18px;font-size:1.25rem}.about__section{margin-top:110px}.about__heading{font-family:var(--font-hand);letter-spacing:.06em;margin:12px 0 8px;font-size:2rem;font-weight:700;line-height:1.3}.about__sub{color:var(--graphite-600);margin:0;font-size:1rem;line-height:1.8}.about__steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:34px 0 0;padding:0;list-style:none;display:grid}.about__step{background-color:var(--paper-white);background-image:var(--grain);padding:26px 22px 24px;position:relative;box-shadow:0 10px 22px -18px #28241e80}.about__step:nth-child(odd){transform:rotate(-.8deg)}.about__step:nth-child(2n){transform:rotate(.7deg)}.about__step-no{font-family:var(--font-hand);color:var(--graphite-400);font-size:1.625rem;font-weight:700;line-height:1;display:block}.about__step-icon{margin:16px 0 14px;display:block;overflow:visible}.about__step-title{font-family:var(--font-hand);letter-spacing:.04em;margin:0;font-size:1.25rem;font-weight:700;line-height:1.4}.about__step-text{color:var(--graphite-600);margin:6px 0 0;font-size:.875rem;line-height:1.8}.about__promise{font-family:var(--font-hand);color:var(--graphite-600);text-align:center;margin:34px 0 0;font-size:1.3125rem;line-height:1.7}.about__process{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:34px 0 0;padding:0;list-style:none;display:grid}.about__figure{margin:0}.about__shot{aspect-ratio:3/4;border:1px solid var(--graphite-200);background:var(--paper-white);overflow:hidden}.about__shot img{object-fit:cover;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.about__done{padding:7%}.about__done img{object-fit:contain}.about__caption{font-family:var(--font-hand);color:var(--graphite-600);text-align:center;margin:12px 0 0;font-size:1rem;line-height:1.4}.about__caption-no{color:var(--graphite-400);margin-right:.6em;font-weight:700}.about__end{text-align:center;flex-direction:column;align-items:center;display:flex}.about__signature{font-family:var(--font-hand);letter-spacing:.04em;margin:0;font-size:2.75rem;line-height:1;display:inline-block;transform:rotate(-4deg)}.about__signature small{color:var(--graphite-600);margin-left:10px;font-size:1.375rem}.about__cafe{margin-top:40px}@media (width<=900px){.about__intro{grid-template-columns:minmax(0,1fr) 280px;gap:44px}}@media (width<=768px){.about__page{padding:92px 20px max(70px, env(safe-area-inset-bottom))}.about__intro{grid-template-columns:minmax(0,1fr);gap:40px}.about__title{margin:12px 0 16px;font-size:2.125rem}.about__text{font-size:.9375rem;line-height:1.9}.about__note{width:min(100%,320px);margin:0 auto;padding:38px 28px 24px}.about__voice{font-size:1.25rem}.about__note-sign{font-size:1.125rem}.about__section{margin-top:76px}.about__heading{font-size:1.6875rem}.about__sub{font-size:.9375rem}.about__steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.about__step{padding:18px 16px}.about__step-title{font-size:1.0625rem}.about__step-text{font-size:.8125rem}.about__promise{text-align:left;font-size:1.125rem}.about__process{grid-template-columns:minmax(0,1fr);gap:18px}.about__figure{grid-template-columns:46% minmax(0,1fr);align-items:center;gap:18px;display:grid}.about__caption{text-align:left;margin:0;font-size:1.0625rem}.about__caption-no{margin:0 0 4px;font-size:1.375rem;display:block}.about__signature{font-size:2.375rem}}.artwork{color:var(--graphite-900);background-image:radial-gradient(ellipse 30vw 46vh at 66% 46%, #fffdf6f2, #fffcf28c 45%, #fffcf200 75%), var(--grain)}.artwork__inner{flex-direction:column;justify-content:center;gap:7vh;min-height:100%;padding:15vh 8vw 7vh;display:flex}.artwork__layout{grid-template-columns:minmax(0,34rem) max-content;justify-content:center;align-items:center;column-gap:clamp(3rem,7vw,7.5rem);margin:0;display:grid}.artwork__text{flex-direction:column;display:flex}.artwork__quote{font-family:var(--font-body);letter-spacing:.02em;color:var(--graphite-900);white-space:pre-wrap;margin:0 0 2.6rem;font-size:clamp(1.2rem,1.55vw,1.6rem);font-weight:500;line-height:1.8}.artwork__story{letter-spacing:.02em;color:var(--graphite-600);margin:0 0 2.6rem;font-size:1rem;line-height:1.85}.artwork__farewell p{letter-spacing:.02em;color:var(--graphite-600);white-space:pre-wrap;margin:0 0 1.1rem;font-size:1rem;line-height:1.85}.artwork__farewell p:last-child{margin-bottom:0}.artwork__sketch-col{flex-direction:column;align-items:flex-end;margin:0;display:flex}.artwork__sketch{transform-origin:100% 100%;-webkit-user-select:none;user-select:none;width:auto;max-width:40vw;height:54vh;display:block}.artwork__signature{font-family:var(--font-hand);letter-spacing:.08em;color:var(--graphite-600);align-self:flex-start;margin-top:1.4rem;font-size:1rem}.artwork__nav{justify-content:space-between;width:min(100%,74rem);margin:0 auto;display:flex}.artwork__link{min-height:44px;font-family:var(--font-hand);letter-spacing:.06em;color:var(--graphite-900);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:1rem}.artwork__link:hover{text-underline-offset:6px;text-decoration:underline}@media (width<=768px){.artwork{background-image:radial-gradient(ellipse 70vw 34vh at 50% 30%, #fffdf6f2, #fffcf280 45%, #fffcf200 75%), var(--grain)}.artwork__inner{min-height:auto;padding:7rem 7vw max(2.5rem, env(safe-area-inset-bottom));justify-content:flex-start;gap:2.5rem}.artwork__layout{flex-direction:column;align-items:stretch;gap:2.2rem;display:flex}.artwork__sketch-col{order:-1;align-items:center}.artwork__sketch{transform-origin:bottom;width:min(72vw,340px);max-width:none;height:auto}.artwork__signature{align-self:center;margin-top:1.5rem}.artwork__quote{margin-bottom:1.6rem;font-size:1.15rem}.artwork__story{margin-bottom:1.6rem;font-size:.9375rem}.artwork__farewell p{font-size:.9375rem}}.ending{place-items:center;min-height:100dvh;padding:6rem 8vw 9rem;display:grid;position:relative}.ending__lines{text-align:center;max-width:42rem;font-family:var(--font-hand)}.ending__lines p{letter-spacing:.06em;color:var(--graphite-900);margin:0;font-size:clamp(1.375rem,2.4vw,2rem);line-height:1.6}.ending__lines p+p{color:var(--graphite-600);margin-top:1.2rem;font-size:clamp(1.125rem,1.8vw,1.5rem)}.ending__lines .ending__signature{letter-spacing:.04em;color:var(--graphite-900);margin-top:2.6rem;font-size:clamp(2.25rem,3.4vw,2.75rem);line-height:1;display:inline-block;transform:rotate(-4deg)}.ending__onward{left:50%;bottom:max(5vh, env(safe-area-inset-bottom));cursor:pointer;background:0 0;border:0;justify-content:center;width:48px;height:76px;padding:0;display:flex;position:absolute;transform:translate(-50%)}.ending__onward-line{background:linear-gradient(#2b2a2700,#2b2a27a6);width:1px;height:100%;transition:background .3s}.ending__onward:hover .ending__onward-line{background:linear-gradient(#2b2a2700,#2b2a27e6)}.cafe{min-height:100dvh;position:relative}.cafe__table{min-height:inherit;color:var(--graphite-900);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 480' width='1440' height='480'><filter id='p' x='0' y='0' width='1' height='1'><feTurbulence type='fractalNoise' baseFrequency='0.035' numOctaves='2' seed='4' stitchTiles='stitch' result='w'/><feDisplacementMap in='SourceGraphic' in2='w' scale='2.4' xChannelSelector='R' yChannelSelector='G' result='d'/><feTurbulence type='fractalNoise' baseFrequency='1.15' numOctaves='1' seed='9' stitchTiles='stitch' result='g'/><feColorMatrix in='g' type='matrix' values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  -2.3 0 0 0 1.8' result='ga'/><feComposite in='d' in2='ga' operator='in'/></filter><g filter='url(%23p)' fill='none' stroke-linecap='round'><rect width='1440' height='480'/><path d='M0 22 Q 720 18 1440 22 M0 262 Q 720 258 1440 262' stroke='%235f5b54' stroke-width='1.2'/><g stroke='%23c9c4b9' stroke-width='1'><path d='M0 110 C 240 102, 420 120, 700 108 S 1180 98, 1440 110'/><path d='M0 186 C 300 194, 520 176, 860 188 S 1250 196, 1440 186'/><path d='M0 340 C 200 332, 520 352, 760 338 S 1210 330, 1440 340'/><path d='M0 420 C 320 428, 640 410, 980 424 S 1300 414, 1440 420'/><path d='M210 372 c 30 -14, 70 -10, 92 6 c -26 14, -64 14, -92 -6 z'/><path d='M1250 150 c 26 -12, 62 -8, 82 6 c -24 12, -58 12, -82 -6 z'/></g></g></svg>"), var(--grain);background-position:top,0 0;background-size:1440px 480px,auto;flex-direction:column;align-items:center;padding:92px 6vw 10vh;display:flex;position:relative;overflow:hidden}.cafe__desk{width:min(560px,100%);position:relative}.cafe__object{z-index:1;pointer-events:none;display:block;position:absolute;overflow:visible}.cafe__cup{width:184px;height:184px}.cafe__cup--far{top:-8px;left:-196px}.cafe__cup--near{width:200px;height:200px;bottom:-100px;right:-210px;transform:rotate(180deg)}.cafe__pencil{transform-origin:0;width:336px;height:24px;top:200px;left:calc(100% + 60px);transform:rotate(-24deg)}.cafe__eraser{width:104px;height:56px;top:470px;left:-300px;transform:rotate(14deg)}.cafe__paper{z-index:2;background-color:var(--paper-white);background-image:var(--grain);padding:34px 44px 30px;position:relative;box-shadow:0 2px #00000008,0 18px 34px -22px #28241e8c}.cafe__tape--left{top:6px;left:-26px;transform:rotate(-38deg)}.cafe__tape--right{bottom:10px;right:-26px;transform:rotate(-38deg)}.inquiry{flex-direction:column;gap:20px;display:flex}.inquiry__head{text-align:center}.inquiry__heading{font-family:var(--font-hand);letter-spacing:.06em;color:var(--graphite-900);margin:0;font-size:clamp(1.5rem,2.4vw,1.875rem);font-weight:700;line-height:1.3}.inquiry__intro{max-width:24em;color:var(--graphite-600);margin:8px auto 0;font-size:.8125rem;line-height:1.7}.field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;display:flex}.field__label{font-family:var(--font-hand);color:var(--graphite-900);padding:0;font-size:1rem;line-height:1.3}.field__optional{color:var(--graphite-600);margin-left:.3em;font-size:.8125rem}.field__input{border:0;border-bottom:1px solid var(--graphite-400);width:100%;font-family:var(--font-body);color:var(--graphite-900);background:0 0;border-radius:0;padding:6px 2px 5px;font-size:1rem;transition:border-color .2s,box-shadow .2s,background-color .2s}.field__input::placeholder{color:var(--graphite-400);opacity:1}.field__input:focus{border-bottom-color:var(--graphite-900);box-shadow:0 1px 0 0 var(--graphite-900);background:#2b2a2709;outline:none}.field__input--contact{margin-top:4px}.field--invalid .field__input{border-bottom:2px solid var(--graphite-900)}.field__error{font-family:var(--font-hand);color:var(--graphite-900);margin:0;font-size:.9375rem;line-height:1.4}.field__error:before{content:"※ ";color:var(--graphite-600)}.choices{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.choice{cursor:pointer;position:relative}.choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.choice__label{border:1px solid var(--graphite-400);min-height:44px;font-family:var(--font-hand);letter-spacing:.04em;color:var(--graphite-900);background:#fcfbf799;border-radius:999px;align-items:center;padding:0 14px;font-size:.875rem;transition:border-color .2s,background-color .2s;display:inline-flex}.choice:hover .choice__label{border-color:var(--graphite-900)}.choice input:checked+.choice__label{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.choice input:focus-visible+.choice__label{outline:2px solid var(--graphite-900);outline-offset:3px}.inquiry__actions{text-align:center;flex-direction:column;align-items:center;gap:10px;margin-top:6px;display:flex}.inquiry__submit{min-width:9em;font-size:1.125rem}.inquiry__note{letter-spacing:.02em;color:var(--graphite-600);margin:0;font-size:.75rem}.inquiry__tally{border:0;width:100%;display:block}.reply{outline:none;flex-direction:column;justify-content:center;gap:.9rem;min-height:15rem;padding:1rem .4rem;display:flex}.reply__line{font-family:var(--font-hand);letter-spacing:.06em;color:var(--graphite-900);margin:0;font-size:clamp(1.15rem,2vw,1.3rem);line-height:2}.reply__char{display:inline}.reply__char--visitor{font-family:var(--font-body)}.cafe__dm{z-index:2;font-family:var(--font-hand);text-align:center;color:var(--graphite-900);margin:30px 0 0;font-size:1.0625rem;line-height:1.6;position:relative}.cafe__dm b{font-weight:700}.cafe__social{z-index:2;gap:26px;margin-top:4px;display:flex;position:relative}.cafe__venue{z-index:2;letter-spacing:.04em;color:var(--graphite-600);margin:16px 0 0;font-size:.85rem;position:relative}@media (width<=768px){.ending{padding:6rem 9vw 8rem}.cafe__table{background-size:1440px 480px,auto;padding:96px 14px 72px}.cafe__paper{padding:28px 22px 24px}.cafe__cup--far,.cafe__pencil,.cafe__eraser{display:none}.cafe__cup--near{z-index:1;width:150px;height:150px;bottom:-112px;right:-78px}.inquiry__heading{font-size:1.5625rem}.choice__label{letter-spacing:.02em;padding:0 12px;font-size:.8125rem}.cafe__dm{margin-top:34px}}@media (prefers-reduced-motion:reduce){.ending__onward-line,.field__input,.choice__label{transition:none}}.gallery{--unit:70vw;--horizon:79%;--spot-x:50%;--spot-y:39%;--spot-rx:25vw;--spot-ry:50vh;color:var(--graphite-900)}.gallery__room{inset:var(--horizon) 0 0;background-color:var(--paper-shade);background-image:var(--grain);position:absolute}.gallery__horizon{width:100%;height:8px;position:absolute;top:-4px;left:0;overflow:visible}.gallery__light{pointer-events:none;background:radial-gradient(var(--spot-rx) var(--spot-ry) at var(--spot-x) var(--spot-y), #fffdf6f2 0%, #fffcf2b3 40%, #fffcf200 75%);position:absolute;inset:0}.gallery__scroller{z-index:1;scrollbar-width:none;position:absolute;inset:0;overflow:auto hidden}.gallery__scroller::-webkit-scrollbar{display:none}.gallery__track{width:max-content;height:100%;padding:0 calc((100vw - var(--unit)) / 2);display:flex}.gallery__unit{flex:0 0 var(--unit);width:var(--unit);flex-direction:column;justify-content:center;align-items:center;gap:1.6rem;height:100%;padding-bottom:14vh;display:flex}.frame{all:unset;box-sizing:border-box;aspect-ratio:3/4;background:var(--paper-white);cursor:pointer;height:min(52svh,540px);transition:transform .45s cubic-bezier(.2,.7,.2,1);display:block;position:relative}.frame:hover{transform:scale(1.03)}.frame:focus-visible{outline:2px solid var(--graphite-900);outline-offset:10px}.frame__mat{padding:7%;display:block;position:absolute;inset:0}.frame__mat img{object-fit:contain;width:100%;height:100%;display:block}.frame[data-frame=thin-black]{border:2px solid #1a1a1a}.frame[data-frame=warm-oak]{border:12px solid #a67c52}.frame[data-frame=classic-gold]{border:10px solid #b8945a}.frame[data-frame=classic-gold] .frame__mat{box-shadow:inset 0 0 0 1px #8c6e3f}.frame[data-frame=ornate-wood]{border:16px solid #5c3a21}.frame[data-frame=none]{border:0}.frame--yours{border:2px solid #1a1a1a}.frame--yours .frame__mat{padding:0;inset:9%;box-shadow:inset 0 0 0 1px #2b2a271f}.plaque{font-family:var(--font-hand);text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.plaque p{margin:0}.plaque__title{letter-spacing:.06em;color:var(--graphite-900);font-size:1.25rem;line-height:1.3}.plaque[lang=en] .plaque__title{letter-spacing:.14em}.plaque__years,.plaque__meta{letter-spacing:.08em;font-variant-numeric:tabular-nums;color:var(--graphite-600);font-size:.875rem;line-height:1.5}.plaque__open{margin-top:2px}.gallery__dim{z-index:3;pointer-events:none;-webkit-mask-image:radial-gradient(var(--spot-rx) var(--spot-ry) at var(--spot-x) var(--spot-y), transparent 0%, transparent 40%, #00000073 68%, #000 100%);-webkit-mask-image:radial-gradient(var(--spot-rx) var(--spot-ry) at var(--spot-x) var(--spot-y), transparent 0%, transparent 40%, #00000073 68%, #000 100%);mask-image:radial-gradient(var(--spot-rx) var(--spot-ry) at var(--spot-x) var(--spot-y), transparent 0%, transparent 40%, #00000073 68%, #000 100%);background:#5f5b541f;animation:12s ease-in-out infinite gallery-breathe;position:absolute;inset:0}.gallery__floor-spot{z-index:4;left:var(--spot-x);top:calc(var(--horizon) + (100% - var(--horizon)) * .42);pointer-events:none;background:radial-gradient(#fffdf6f2 0%,#fffdf680 42%,#fffdf600 70%);width:24vw;height:8vh;animation:12s ease-in-out infinite gallery-breathe;position:absolute;transform:translate(-50%,-50%)}@keyframes gallery-breathe{0%,to{opacity:.88}50%{opacity:1}}.gallery__progress{z-index:6;top:max(20px, calc(env(safe-area-inset-top) + 10px));font-family:var(--font-hand);letter-spacing:.12em;white-space:nowrap;color:var(--graphite-600);pointer-events:none;flex-direction:column;align-items:center;gap:10px;font-size:.875rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.gallery__progress-line{background:var(--graphite-200);width:120px;height:1px;display:block;position:relative;overflow:hidden}.gallery__progress-fill{background:var(--graphite-900);transform-origin:0;transition:transform .5s;position:absolute;inset:0}.gallery__arrow{z-index:6;min-height:44px;font-family:var(--font-hand);letter-spacing:.06em;color:var(--graphite-600);cursor:pointer;background:0 0;border:0;padding:0 12px;font-size:1rem;transition:opacity .3s;position:absolute;top:46%}.gallery__arrow:hover:not(:disabled){color:var(--graphite-900)}.gallery__arrow:disabled{opacity:0;cursor:default}.gallery__arrow--prev{left:36px}.gallery__arrow--next{right:36px}.gallery__swipe{z-index:6;left:0;right:0;bottom:max(6vh, env(safe-area-inset-bottom));text-align:center;font-family:var(--font-hand);letter-spacing:.06em;color:var(--graphite-600);pointer-events:none;margin:0;font-size:.8125rem;position:absolute}.gallery--mobile{--spot-x:50%;--spot-y:42%;--spot-rx:64vw;--spot-ry:40vh;--horizon:81%}.gallery--mobile .gallery__scroller{scroll-snap-type:y mandatory;overscroll-behavior:contain;overflow:hidden auto}.gallery--mobile .gallery__track{flex-direction:column;width:100%;height:auto;padding:0}.gallery--mobile .gallery__unit{scroll-snap-align:start;scroll-snap-stop:always;flex:none;gap:1.2rem;width:100%;height:100dvh;padding-top:7vh;padding-bottom:14vh}.gallery--mobile .frame{width:min(66vw,300px);height:auto}.gallery--mobile .frame:hover{transform:none}.gallery--mobile .gallery__floor-spot{width:64vw}.gallery--mobile .gallery__progress{top:max(62px, calc(env(safe-area-inset-top) + 52px));gap:8px;font-size:.8125rem}.gallery--mobile .gallery__progress-line{width:96px}.gallery--mobile .plaque__title{font-size:1.125rem}@media (prefers-reduced-motion:reduce){.gallery__dim,.gallery__floor-spot{animation:none}.frame,.gallery__progress-fill,.gallery__arrow{transition:none}.frame:hover{transform:none}}.train{--win-x:9vw;--win-top:15svh;--win-h:43svh;color:var(--graphite-900)}.train__world{transform-origin:50% 36%;will-change:transform;position:absolute;inset:0}.train__sway{will-change:transform;animation:5.6s ease-in-out infinite train-sway;position:absolute;inset:-1.5%}@keyframes train-sway{0%,to{transform:translate(0,0)}50%{transform:translateY(2px)}}.train__wall{position:absolute;inset:0}.train__rack{left:5vw;right:5vw;top:max(calc(var(--win-top) - 8.5vh), 76px);top:max(calc(var(--win-top) - 8.5svh), 76px);height:14px;position:absolute}.train__window{left:var(--win-x);right:var(--win-x);top:var(--win-top);height:var(--win-h);position:absolute}.train__frame{width:calc(100% + 30px);height:calc(100% + 30px);inset:-15px}.train__glass{background:var(--paper-white);border-radius:24px;position:absolute;inset:0;overflow:hidden}.train__scenery{will-change:transform;position:absolute;inset:-24px}.train__sky{background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='100' height='100'><circle cx='50' cy='50' r='46' fill='none' stroke='%23c9c4b9' stroke-width='2.4'/></svg>") 74% 18%/auto 22% no-repeat;position:absolute;inset:0}.train__layer{will-change:transform;background-position:0 0;background-repeat:repeat-x;background-size:auto 100%;width:300%;position:absolute;left:0}.train__layer--clouds{height:32%;top:6%}.train__layer--far{height:46%;bottom:18%}.train__layer--mid{height:36%;bottom:6%}.train__layer--near{height:34%;bottom:0}.train__wainscot{left:0;right:0;top:calc(var(--win-top) + var(--win-h) + 6vh);top:calc(var(--win-top) + var(--win-h) + 6svh);position:absolute;bottom:0}.train__seat{will-change:transform;width:34vw;height:27svh;position:absolute;bottom:-7svh}.train__seat--left{left:-7vw}.train__seat--right{right:-7vw}.train__dim{z-index:1;opacity:0;will-change:opacity;pointer-events:none;background:radial-gradient(at 50% 52%,#2b2a2761,#2b2a27e6 75%);position:absolute;inset:0}.train__title{z-index:2;will-change:opacity, transform;flex-direction:column;justify-content:center;align-items:center;gap:44px;padding:10svh 1.5rem 6svh;display:flex;position:absolute;inset:0}.title-sheet{background-color:var(--paper-white);background-image:var(--grain);grid-template-columns:230px minmax(0,1fr);align-items:center;gap:34px;width:min(780px,100%);padding:30px 40px 30px 30px;display:grid;position:relative;transform:rotate(-1.1deg);box-shadow:0 2px #00000008,0 14px 30px -18px #28241e73}.title-sheet__tape--left{top:-8px;left:-22px;transform:rotate(-32deg)}.title-sheet__tape--right{top:-6px;right:-24px;transform:rotate(28deg)}.title-sheet__eyes{margin:0}.title-sheet__crop{border:1px solid var(--graphite-200);background:var(--paper-white);height:168px;position:relative;overflow:hidden}.title-sheet__crop img{-webkit-user-select:none;user-select:none;width:842px;max-width:none;height:auto;position:absolute;top:50%;left:50%}.title-sheet__eyes figcaption{font-family:var(--font-hand);color:var(--graphite-600);text-align:center;margin-top:8px;font-size:.8125rem;line-height:1.3}.title-sheet__kicker{font-family:var(--font-body);letter-spacing:.34em;color:var(--graphite-600);margin:0;font-size:.75rem;font-weight:500;line-height:1}.title-sheet__heading{font-family:var(--font-hand);letter-spacing:.06em;color:var(--graphite-900);margin:12px 0 10px;font-size:clamp(1.75rem,3.3vw,2.875rem);font-weight:700;line-height:1.25}.title-sheet__lead{font-family:var(--font-hand);color:var(--graphite-600);margin:0;font-size:clamp(1.0625rem,1.5vw,1.3125rem);line-height:1.5}.title-sheet__en{font-family:var(--font-body);letter-spacing:.04em;color:var(--graphite-600);margin:10px 0 0;font-size:.8125rem;line-height:1.4}.train__start:focus-visible{outline-offset:5px}.train__sound-hint{bottom:max(4.5vh, env(safe-area-inset-bottom));bottom:max(4.5svh, env(safe-area-inset-bottom));font-family:var(--font-hand);color:var(--graphite-600);justify-content:center;align-items:center;gap:8px;margin:0;font-size:.9375rem;display:flex;position:absolute;left:1rem;right:1rem}.train__line{z-index:2;left:6vw;right:6vw;top:calc(var(--win-top) + var(--win-h) + 11vh);top:calc(var(--win-top) + var(--win-h) + 11svh);text-align:center;font-family:var(--font-hand);letter-spacing:.06em;color:var(--graphite-900);opacity:0;will-change:opacity, transform;margin:0;font-size:clamp(1.25rem,2.2vw,1.75rem);line-height:1.5;position:absolute}.train__skip{z-index:3;right:max(12px, env(safe-area-inset-right));bottom:max(12px, env(safe-area-inset-bottom));min-height:44px;font-family:var(--font-body);letter-spacing:.12em;color:var(--graphite-600);cursor:pointer;background:0 0;border:0;padding:0 14px;font-size:.8125rem;position:absolute}.train__skip:hover{color:var(--graphite-900)}.train__skip:focus-visible{outline-offset:-2px}.door{--door-w:min(28vw, 330px);--door-h:min(64svh, 580px);z-index:3;width:var(--door-w);height:var(--door-h);margin-left:calc(var(--door-w) / -2);margin-top:calc(var(--door-h) / -2 + 2vh);margin-top:calc(var(--door-h) / -2 + 2svh);perspective:1600px;opacity:0;will-change:opacity, transform;position:absolute;top:50%;left:50%}.door__glow{opacity:0;will-change:opacity, transform;pointer-events:none;background:radial-gradient(#fcfbf7fa 0%,#fcfbf799 32%,#fcfbf700 66%);position:absolute;inset:-30% -70%}.door__frame{position:absolute;inset:-16px -16px 0}.door__frame-side--top{height:16px;inset:0 0 auto}.door__frame-side--left,.door__frame-side--right{width:16px;height:calc(100% - 16px);top:16px;bottom:auto}.door__frame-side--left{left:0;right:auto}.door__frame-side--right{left:auto;right:0}.door__doorway{background:var(--paper-white);position:absolute;inset:1px}.door__button{cursor:pointer;transform-style:preserve-3d;background:0 0;border:0;padding:0;display:flex;position:absolute;inset:0}.door:not(.door--ready) .door__button{pointer-events:none;cursor:default}.door__button:focus-visible{outline:2px solid var(--paper-white);outline-offset:22px}.door__leaf{will-change:transform;backface-visibility:hidden;width:50%;height:100%;display:block;position:relative}.door__leaf--left{transform-origin:0}.door__leaf--right{transform-origin:100%}.door__handle{background:var(--graphite-900);border-radius:3px;width:5px;height:56px;position:absolute;top:43%;box-shadow:0 0 6px 1px #fcfbf780}.door__leaf--left .door__handle{right:12px}.door__leaf--right .door__handle{left:12px}.door--ready .door__handle{animation:2.6s ease-in-out infinite door-handle-glow}@keyframes door-handle-glow{0%,to{box-shadow:0 0 6px 1px #fcfbf773}50%{box-shadow:0 0 20px 7px #fcfbf7f2}}.door__seam{background:#fcfbf7f2;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 12px 2px #fcfbf799}.train__flood{z-index:6;background:var(--paper-white);opacity:0;will-change:opacity;pointer-events:none;position:absolute;inset:0}@media (width<=768px){.train{--win-x:6vw;--win-top:14svh;--win-h:39svh}.train__rack{height:12px;left:7vw;right:7vw}.train__frame{width:calc(100% + 24px);height:calc(100% + 24px);inset:-12px}.train__glass{border-radius:18px}.train__mullion{display:none}.train__seat{width:52vw;height:18svh;bottom:-5svh}.train__seat--left{left:-16vw}.train__seat--right{right:-16vw}.train__title{gap:30px;padding:22svh 18px 12svh}.title-sheet{grid-template-columns:minmax(0,1fr);gap:14px;width:min(520px,100%);padding:18px 20px 22px;transform:rotate(-1deg)}.title-sheet__crop{height:112px}.title-sheet__crop img{width:700px}.title-sheet__eyes figcaption{margin-top:6px;font-size:.75rem}.title-sheet__kicker{letter-spacing:.28em;font-size:.625rem}.title-sheet__heading{letter-spacing:.04em;margin:8px 0 6px;font-size:clamp(1.5rem,7.8vw,2.25rem)}.title-sheet__en{margin-top:6px;font-size:.6875rem}.train__sound-hint{font-size:.8125rem}.train__line{top:calc(var(--win-top) + var(--win-h) + 9vh);top:calc(var(--win-top) + var(--win-h) + 9svh)}.door{--door-w:min(60vw, 280px);--door-h:min(58svh, 480px)}}@media (width<=600px){.train__sound-more{display:none}}@media (width<=768px) and (height<=700px){.train__title{gap:22px;padding-top:12svh}.title-sheet__crop{height:96px}}@media (prefers-reduced-motion:reduce){.train__sway,.door--ready .door__handle{animation:none}.door--ready .door__handle{box-shadow:0 0 16px 5px #fcfbf7d9}}
