:root{--paper:#fff;--ink:#161616;--grid:rgba(0,0,0,.035);--cross:rgba(0,0,0,.13);--dock:rgba(255,255,255,.85);--tile:rgba(0,0,0,.045)}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--paper);color:var(--ink);font-family:Arial,"Microsoft YaHei",sans-serif;transition:background .3s,color .3s}body.dark{--paper:#171717;--ink:#f0f0f0;--grid:rgba(255,255,255,.04);--cross:rgba(255,255,255,.13);--dock:rgba(45,45,45,.88);--tile:rgba(255,255,255,.07)}button,a{-webkit-tap-highlight-color:transparent;color:inherit}button{font:inherit;cursor:pointer}#viewport{position:absolute;inset:0;overflow:hidden;cursor:grab;touch-action:none}#viewport.dragging{cursor:grabbing}#world{position:absolute;left:50%;top:50%;width:0;height:0;transform:translate(var(--x,0px),var(--y,0px)) scale(var(--zoom,1))}.plane{position:absolute;left:-950px;top:-850px;width:1900px;height:1700px;transform:rotateX(48deg) rotateZ(34deg);transform-style:preserve-3d}.grid{position:absolute;inset:-1200px;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:48px 48px}.grid:after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='144' height='144'%3E%3Cpath d='M66 72h12m-6-6v12' stroke='%23888' opacity='.3' stroke-width='.7'/%3E%3C/svg%3E")} .letters{position:absolute;left:625px;top:560px;width:700px;display:grid;grid-template-columns:repeat(3,220px);grid-auto-rows:260px;gap:0 15px;font-family:Arial Black,Arial,sans-serif;font-size:300px;font-style:italic;font-weight:1000;line-height:.9;letter-spacing:-28px;user-select:none}.letters span:nth-child(2){transform:translateY(40px)}.letters span:nth-child(3){transform:translateY(12px)}.letters span:nth-child(4){grid-column:2;transform:translate(-20px,0)}.letters span:nth-child(5){grid-column:3;transform:translate(15px,35px)}.sheet{position:absolute;background:var(--paper);box-shadow:0 24px 28px #00000020,0 0 0 1px var(--grid);width:300px;height:250px}.s1{left:240px;top:400px}.s2{left:920px;top:140px;width:380px;height:280px}.s3{left:1430px;top:600px;width:260px;height:220px}.s4{left:420px;top:1170px;width:340px;height:240px}.s5{left:1240px;top:1190px;width:350px;height:270px}#language{position:fixed;right:26px;top:20px;background:none;border:0;font-size:12px;min-width:44px;min-height:44px}#size{position:fixed;bottom:21px;left:28px;font:10px monospace;color:#888;pointer-events:none}.dock{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:6px;align-items:flex-end;padding:8px;border-radius:32px;background:var(--dock);backdrop-filter:blur(18px);border:1px solid #ffffff55;box-shadow:0 6px 24px #00000012;z-index:3}.dock a,.dock button{position:relative;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:var(--tile);text-decoration:none;transform-origin:bottom;transition:transform .18s,background .18s}.dock svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;opacity:.6}.dock [disabled]{cursor:default;opacity:.35}.dock .divider{height:32px;width:1px;background:#8883;margin:4px}.dock [data-tip]:after{content:attr(data-tip);position:absolute;bottom:calc(100% + 12px);padding:5px 9px;border-radius:6px;background:var(--dock);font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transform:translateY(3px);transition:.16s}.dock :is(a,button):hover:not(:disabled){transform:translateY(-5px) scale(1.22)}.dock :is(a,button):hover:after,.dock :focus-visible:after{opacity:1;transform:none}:focus-visible{outline:2px solid #888;outline-offset:4px}@media(max-width:700px){#world{scale:.58}.dock{gap:4px;padding:7px;bottom:18px}.dock a,.dock button{width:31px;height:31px}.dock svg{width:17px;height:17px}.dock .divider{margin:1px;width:1px;height:27px}#size{left:15px;bottom:70px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.plane{transform:rotateX(35deg) rotateZ(-13deg) skewX(-10deg)}.letters{left:450px;top:660px;width:1040px;height:340px;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:0;font-size:280px;line-height:1;font-weight:1000;letter-spacing:-18px;white-space:nowrap;pointer-events:none}.letters span:nth-child(n){transform:none;grid-column:auto;display:inline-block}.grid{inset:0;width:1920px;height:1728px;display:grid;grid-template-columns:repeat(40,48px);grid-template-rows:repeat(36,48px);background:none}.grid:after{display:none}.cell{position:relative;border-right:1px solid var(--grid);border-bottom:1px solid var(--grid)}.cell:after{content:'+';position:absolute;right:-4px;bottom:-7px;font-size:12px;font-weight:200;color:var(--cross);pointer-events:none}.cell-glow{position:absolute;inset:0;pointer-events:none}.sheet{pointer-events:none}.s1{left:410px;top:290px}.s2{left:1080px;top:230px}.s3{left:1530px;top:670px}.s4{left:420px;top:1130px}.s5{left:1160px;top:1100px}@media(max-width:700px){#world{scale:.36}.letters{font-size:280px}}
.letters{left:370px;width:1160px;justify-content:space-between;gap:36px;font-family:Impact,"Arial Narrow","Arial Black",sans-serif;font-size:300px;font-weight:900;font-style:normal;letter-spacing:0}.letters span:nth-child(n){flex:0 0 auto;transform:skewX(-9deg)}@media(max-width:700px){.letters{font-size:300px;gap:36px}}
.sheet.liquid{pointer-events:auto;overflow:hidden;cursor:pointer}.liquid video{width:100%;height:100%;display:block;object-fit:cover;filter:grayscale(1);transition:filter .35s ease;pointer-events:none}.liquid.active video{filter:grayscale(0)}
#world{transform:scale(var(--fit,1));scale:1}.plane{transform:rotateX(var(--rx,35deg)) rotateZ(var(--rz,-13deg)) skewX(-8deg);transform-origin:center}.letters{left:490px;top:700px;width:920px;height:290px;gap:18px;justify-content:center;font-family:"Arial Rounded MT Bold","Arial Black",Arial,sans-serif;font-weight:900;font-size:255px;letter-spacing:-5px}.letters span:nth-child(n){transform:skewX(-8deg);flex-shrink:0}.letters span:nth-child(2){translate:0 27px}.letters span:nth-child(3){translate:0 -19px}.letters span:nth-child(4){translate:0 21px}.letters span:nth-child(5){translate:0 -12px}.s1{left:390px;top:340px;width:330px;height:235px}.s2{left:1060px;top:300px;width:425px;height:180px}.s3{left:130px;top:740px;width:220px;height:310px}.s4{left:470px;top:1150px;width:410px;height:205px}.s5{left:1390px;top:1070px;width:245px;height:295px}@media(max-width:700px){#world{scale:1}.letters{font-size:255px;gap:18px}}
.s1{left:250px;top:410px;width:290px;height:250px}.s2{left:790px;top:260px;width:520px;height:310px}.s3{left:1460px;top:610px;width:260px;height:230px}.s4{left:330px;top:1110px;width:370px;height:240px}.s5{left:1130px;top:1130px;width:340px;height:220px}.letters{left:480px;top:730px;width:950px;gap:16px;font-size:240px}.s2 video{object-fit:cover}.grid{inset:-1500px;width:4920px;height:4728px;grid-template-columns:repeat(40,123px);grid-template-rows:repeat(36,132px)}
.grid{inset:0;width:1920px;height:1728px;grid-template-columns:repeat(40,48px);grid-template-rows:repeat(36,48px)}.plane:before{content:'';position:absolute;inset:-3000px;z-index:-1;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:48px 48px}

.dock{gap:12px;padding:9px 12px;border-radius:42px;background:var(--dock);align-items:center}.dock a,.dock button{width:48px;height:48px;transform:translateY(var(--dock-lift,0px)) scale(var(--dock-scale,1));transition:transform 220ms cubic-bezier(.2,.8,.2,1),background .2s;will-change:transform}.dock svg{width:24px;height:24px;stroke-width:1.8}.dock :is(a,button):hover:not(:disabled){transform:translateY(var(--dock-lift,0px)) scale(var(--dock-scale,1))}.dock a:first-child:before{content:'';position:absolute;width:4px;height:4px;border-radius:50%;background:#8886;bottom:-6px}.dock .divider{margin:0 4px;height:36px}@media(max-width:700px){.dock{gap:7px;padding:8px 10px}.dock a,.dock button{width:37px;height:37px}.dock svg{width:20px;height:20px}.dock .divider{margin:0 2px;height:29px}}@media(prefers-reduced-motion:reduce){.dock a,.dock button{transform:none!important;transition:none!important}}
.dock a,.dock button{flex:0 0 auto;width:var(--dock-size,48px);height:var(--dock-size,48px);transition:width 180ms ease-out,height 180ms ease-out,transform 180ms ease-out;transform:translateY(var(--dock-lift,0px))}.dock :is(a,button):hover:not(:disabled){transform:translateY(var(--dock-lift,0px))}.dock svg{width:50%;height:50%}@media(max-width:700px){.dock a,.dock button{width:var(--dock-size,37px);height:var(--dock-size,37px)}}
.dock svg{stroke-linecap:round;stroke-linejoin:round;stroke-width:1.45;opacity:.48;filter:drop-shadow(0 1px 1px #ffffff66)}.dock a,.dock button{background:linear-gradient(145deg,rgba(150,150,150,.065),rgba(150,150,150,.13));box-shadow:inset 0 1px 2px #ffffff40}.dock{box-shadow:0 8px 28px #0000000b,inset 0 1px 2px #ffffff80;border-color:#eeeeee66}body.dark .dock svg{filter:none;opacity:.65}
.sheet.photo{overflow:hidden}.sheet.photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 42%;pointer-events:none}

.sheet.photo img{filter:grayscale(1);transition:filter 350ms ease}
@media(hover:hover){.sheet.photo:hover img{filter:grayscale(0)}}
.sheet.photo:focus-visible img{filter:grayscale(0)}
.sheet.photo:focus-visible{outline:2px solid #888;outline-offset:5px}
@media(prefers-reduced-motion:reduce){.sheet.photo img{transition:none}}

.sheet.s4.photo{width:370px;height:auto;aspect-ratio:4 / 3;pointer-events:auto}
.sheet.photo img{height:auto;aspect-ratio:4 / 3;object-fit:contain;object-position:center}


.sheet.s5{width:340px;height:340px;aspect-ratio:1 / 1}.sheet.s5 video{object-fit:contain}

.s5.liquid:hover video,.s5.liquid:focus-visible video{filter:grayscale(0)}

.s5.liquid.music-playing video{filter:grayscale(0)}

a.sheet{display:block;text-decoration:none}.route-hint{position:fixed;z-index:90;pointer-events:none;color:var(--ink);opacity:0;transition:opacity 160ms ease}.route-hint.visible{opacity:1}.route-hint span{font:18px "Courier New","Microsoft YaHei",monospace;white-space:nowrap;background:var(--paper);padding:3px 5px}.route-hint i{display:block;width:1px;height:var(--line-height,70px);margin:12px 0 0 5px;background:currentColor;transform-origin:top;transform:scaleY(0);transition:transform 220ms ease}.route-hint.visible i{transform:scaleY(1)}@media(prefers-reduced-motion:reduce){.route-hint,.route-hint i{transition:none}}

.route-hint span{font-family:Arial,"Microsoft YaHei","PingFang SC",sans-serif;font-weight:600;letter-spacing:-.02em;background:transparent}

.route-hint{z-index:950}.route-hint span{display:block;background:var(--paper);padding:4px 7px;line-height:1.35}.route-hint i{position:absolute;left:3px;top:100%;margin-top:8px;transition:none}

#home-loader{position:fixed;inset:0;z-index:20000;background:#111;color:#eee;display:flex;align-items:center;justify-content:center;flex-direction:column;background-image:radial-gradient(#ffffff18 .8px,transparent .8px);background-size:25px 25px;transition:opacity 400ms ease}.load-number{font:300 clamp(90px,17vw,210px)/1 Arial,sans-serif;letter-spacing:-.07em;font-variant-numeric:tabular-nums}.load-number span{font-size:20px;letter-spacing:0;margin-left:10px}.load-track{width:min(280px,60vw);height:1px;background:#ffffff25;margin-top:30px}.load-track i{display:block;height:100%;width:0;background:#eee;transition:width .15s linear}#load-retry{margin-top:25px;background:none;border:1px solid #888;color:#eee;padding:10px 18px;cursor:pointer}.home-loading #viewport,.home-loading .site-dock,.home-loading #language,.home-loading #size{visibility:hidden}#home-loader.finished{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){#home-loader,.load-track i{transition:none}}

.load-number{display:flex;align-items:baseline}.load-number>.load-digit{position:relative;display:block;width:.6em;height:1.08em;overflow:hidden;font:inherit;letter-spacing:inherit;margin:0}.load-digit>.load-strip{display:flex;flex-direction:column;transition:transform 550ms cubic-bezier(.22,.7,.25,1);font:inherit;margin:0;letter-spacing:inherit;will-change:transform}.load-strip>span{display:block;flex:none;height:1.08em;line-height:1.08;font:inherit;letter-spacing:inherit;margin:0}.load-number>span:last-child:not(.load-digit){font-size:20px;margin-left:10px}@media(prefers-reduced-motion:reduce){.load-digit>.load-strip{transition:none}}

.load-digit>.load-strip{transition:none;transform:translateY(0)}
