@font-face{font-family:Jinghua Laosong;src:url(/fonts/jinghua-ext.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+2E80-2EFF,U+3000-303F,U+31C0-31EF,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF,U+FE30-FE4F,U+FF00-FFEF}@font-face{font-family:Jinghua Laosong;src:url(/fonts/jinghua-core.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+20-7E,U+B0,U+B7,U+D7,U+E9,U+FC,U+2014,U+2018-2019,U+201C-201D,U+2026,U+2190,U+2192,U+2208,U+3000-3017,U+301C-3029,U+3036,U+4E00-4E01,U+4E07,U+4E09-4E0B,U+4E0D-4E0E,U+4E13-4E14,U+4E16,U+4E1A-4E1D,U+4E22,U+4E24-4E25,U+4E2A,U+4E2D,U+4E32,U+4E34,U+4E3A-4E3B,U+4E45,U+4E48-4E49,U+4E4B,U+4E4E,U+4E50,U+4E58,U+4E5D,U+4E5F-4E60,U+4E66,U+4E73,U+4E86,U+4E89,U+4E8B-4E8C,U+4E8E,U+4E91-4E92,U+4E9B,U+4EA4,U+4EA7,U+4EAB-4EAC,U+4EAE,U+4EB2,U+4EBA,U+4EC0,U+4EC5,U+4ECB,U+4ECD-4ECE,U+4ED3,U+4ED6,U+4EE3-4EE5,U+4EEA,U+4EEC,U+4EF0,U+4EF6,U+4EFB,U+4EFD,U+4EFF,U+4F0A,U+4F17-4F18,U+4F1A,U+4F20,U+4F30,U+4F34,U+4F38,U+4F46,U+4F4D-4F4F,U+4F53,U+4F55,U+4F59,U+4F5B-4F5C,U+4F60,U+4F73,U+4F7F,U+4F88,U+4F8B,U+4F9B,U+4F9D,U+4FA3,U+4FA7,U+4FBF,U+4FC3,U+4FDD,U+4FE1,U+4FEF,U+5012,U+501F,U+503C,U+504F,U+505A,U+505C,U+5076,U+50A8,U+50CF,U+513F-5141,U+5143,U+5145,U+5148-5149,U+514B,U+514D,U+515C,U+5165,U+5168,U+516C,U+5171,U+5173,U+5175-5177,U+517B,U+517D,U+5185,U+518D,U+5192,U+5199,U+51A5,U+51AC,U+51B2-51B3,U+51C6,U+51CF,U+51E0,U+51ED,U+51F6,U+51F8,U+51FA-51FB,U+51FD,U+5206-5207,U+5217,U+5219-521B,U+521D,U+5220,U+5224,U+5229,U+522B,U+5230,U+5236-5237,U+523B,U+524D,U+5269,U+526F,U+5272,U+529B,U+529F-52A1,U+52A8-52A9,U+52B1,U+52B3,U+52BF,U+52FF,U+5305-5306,U+5316,U+5320,U+533A,U+5341,U+5347,U+534A,U+5355,U+5360-5361,U+5370,U+5373-5374,U+5378,U+5386,U+5389,U+538B,U+539A,U+539F,U+53BB,U+53C2,U+53C8-53CD,U+53D1,U+53D6-53D9,U+53E0,U+53E3,U+53E5-53E6,U+53EA,U+53EF-53F0,U+53F2-53F3,U+53F6-53F7,U+5403-5404,U+5408,U+540C-540E,U+5411,U+541E,U+5426,U+542B,U+542F,U+5438,U+5448,U+5458,U+5473,U+547C-547D,U+548C,U+54C1,U+54CD,U+54EA,U+54FA,U+552F,U+553E,U+5546,U+5584,U+559C,U+55BB,U+5668,U+566C,U+56CA,U+56DB,U+56DE,U+56E0,U+56ED,U+56F4,U+56FA,U+56FD-56FE,U+5706,U+5708,U+571F,U+5728,U+5730,U+573A,U+574D,U+5750,U+5757,U+5768,U+5782,U+578B,U+57CB,U+57DF,U+57FA,U+584C,U+5851,U+586B,U+5883,U+5899,U+589E-589F,U+58EB,U+58F0,U+58F3,U+5904,U+5907,U+590D,U+5916,U+591A,U+591F,U+5927,U+5929-592A,U+5931,U+5934,U+5947-5948,U+594F,U+5957,U+5962,U+5965,U+5973,U+5979,U+597D,U+5982,U+59CB,U+59FF,U+5A32,U+5A34,U+5A92,U+5B50,U+5B57-5B58,U+5B63,U+5B66,U+5B69,U+5B81,U+5B83,U+5B85,U+5B89,U+5B8B-5B8C,U+5B9A,U+5B9D-5B9E,U+5BA1-5BA3,U+5BB3,U+5BB6,U+5BB9,U+5BBD,U+5BC6,U+5BCC,U+5BD2,U+5BF8-5BF9,U+5BFB-5BFC,U+5C01,U+5C04,U+5C06,U+5C0F,U+5C11,U+5C16,U+5C18,U+5C1A,U+5C24,U+5C31,U+5C3A,U+5C3E,U+5C40,U+5C42,U+5C45,U+5C4F,U+5C55,U+5C5E,U+5C71,U+5D3D,U+5D4C,U+5DE2,U+5DE5-5DE6,U+5DEE,U+5DF1-5DF2,U+5E03,U+5E08,U+5E0C,U+5E26-5E27,U+5E2E,U+5E38,U+5E45,U+5E55,U+5E72-5E74,U+5E76,U+5E7C,U+5E8F,U+5E93-5E95,U+5E9F,U+5EA6-5EA7,U+5ED3,U+5EF6,U+5EFA,U+5F00,U+5F02,U+5F0F,U+5F15,U+5F17,U+5F20,U+5F27,U+5F39-5F3A,U+5F52-5F53,U+5F55,U+5F62,U+5F69,U+5F71,U+5F80,U+5F84-5F85,U+5F88,U+5F97,U+5FAA,U+5FAE,U+5FB7,U+5FC3,U+5FC5-5FC6,U+5FD7-5FD8,U+5FEB,U+5FF5,U+6001,U+601D,U+6025,U+6027,U+603B,U+6062,U+606F-6070,U+6076,U+6084,U+6089,U+60C5,U+60F3,U+6108,U+610F,U+611F,U+613F,U+6162,U+61C2,U+620F-6211,U+6216,U+6218,U+622A,U+6237,U+6240-6241,U+624B,U+624D,U+6253,U+6258,U+6267,U+6269,U+626B,U+6270,U+6279,U+627E-6280,U+628A,U+6291,U+6295-6298,U+62AC,U+62B5,U+62C5-62C6,U+62C9,U+62D6,U+62E5-62E6,U+62E9,U+62FD,U+62FF,U+6301-6302,U+6307,U+6309,U+6311,U+6321,U+6324-6325,U+632A,U+6355,U+6362,U+636E,U+6380,U+6389,U+638C,U+638F,U+6392,U+6398,U+63A2,U+63A5,U+63A7-63A9,U+63CF-63D0,U+63D2,U+63ED,U+6446-6447,U+6467,U+6478,U+6491,U+649E,U+64AD,U+64CD,U+652F,U+6536,U+6539,U+653E,U+6545,U+6548,U+654C,U+654F,U+6563,U+6570,U+6574,U+6587,U+6591,U+6599,U+659C,U+65AD,U+65B0,U+65B9,U+65C5,U+65CB,U+65CF,U+65E0,U+65E2,U+65E5-65E7,U+65E9,U+65F6,U+660E-660F,U+6613,U+661F-6620,U+662F,U+663E,U+6655,U+665A,U+666E-6670,U+6676,U+6682,U+6697,U+66F3-66F4,U+66FE-6700,U+6709,U+670D,U+671B,U+671D,U+671F,U+6728,U+672A,U+672C,U+672F,U+673A,U+6740,U+6742-6743,U+6750,U+675F,U+6761,U+6765,U+677E-677F,U+6781,U+6784,U+6790,U+679C,U+67D0,U+67D3,U+67E5,U+6807,U+680F,U+6811,U+6837-6839,U+683C,U+6846,U+6848,U+684C,U+6863,U+6885,U+68A6,U+68F1,U+68F5,U+695A,U+6982,U+6A21,U+6A2A,U+6B21-6B22,U+6B62-6B65,U+6B7B,U+6B8B,U+6B96,U+6BB5,U+6BC1,U+6BCD,U+6BCF,U+6BD4,U+6BDB,U+6C11,U+6C14,U+6C1B,U+6C34,U+6C38,U+6C42,U+6C49,U+6C60-6C61,U+6C89,U+6CA1,U+6CBB,U+6CBF,U+6CD5,U+6CDB,U+6CE1-6CE2,U+6CE5,U+6CE8,U+6D1B,U+6D3B,U+6D3E,U+6D41,U+6D46,U+6D4B,U+6D4F,U+6D6E,U+6D77-6D78,U+6D88,U+6D9F,U+6DB2,U+6DE1,U+6DF1,U+6E05,U+6E10,U+6E21,U+6E29,U+6E32,U+6E34,U+6E38,U+6E90,U+6EA2,U+6EB6,U+6ED1,U+6EDA,U+6EE1,U+6EE4,U+6F02,U+6F06,U+6F0F,U+6F14,U+6F2A,U+706F-7070,U+7075,U+70B9,U+70E4,U+70ED,U+7126,U+7136,U+7167,U+719F,U+71AC,U+7247-7248,U+724C,U+7269,U+7275,U+7279,U+72B6,U+72D0,U+72EC,U+72F8,U+730E,U+732E,U+7384,U+738B,U+73A9,U+73AF-73B0,U+73BB,U+7406,U+7483,U+74F7,U+751C,U+751F,U+7528,U+7531,U+7535,U+753B,U+754C,U+7559,U+7565,U+758F,U+75C5,U+767B,U+767D-767E,U+7684,U+7687,U+76AE,U+76C8,U+76CF,U+76D2,U+76D6,U+76D8,U+76EE,U+76F4,U+76F8,U+7701,U+770B,U+771F,U+7740,U+7761,U+77AC,U+77E9,U+77ED-77EE,U+77F3,U+7801,U+7814,U+781A,U+7834,U+7840,U+786C,U+786E,U+788D,U+78B0,U+78E8,U+793A,U+793E,U+7956,U+795E,U+7981,U+79BB,U+79C1,U+79CD,U+79D1-79D2,U+79E4,U+79EF-79F0,U+79FB,U+7A00,U+7A0B,U+7A0D,U+7A33,U+7A3F,U+7A76,U+7A7A,U+7A7F,U+7A81,U+7A84,U+7A97,U+7ACB,U+7AD6,U+7AD9,U+7AE0,U+7AEF,U+7AF9,U+7B26,U+7B2C,U+7B3C,U+7B49,U+7B51,U+7B56,U+7B5B,U+7B7E,U+7B80,U+7B97,U+7BA1,U+7BAD,U+7BB1,U+7BC7,U+7C27,U+7C7B,U+7C92,U+7CBE,U+7CCA,U+7CFB,U+7D20,U+7D22,U+7D27,U+7D2B,U+7D2F,U+7E41,U+7EA4,U+7EA6-7EA7,U+7EAF,U+7EB3,U+7EB8,U+7EBF,U+7EC3-7EC4,U+7EC6-7EC8,U+7ECD,U+7ECF,U+7ED1,U+7ED3,U+7ED5,U+7ED8-7ED9,U+7EDC-7EDD,U+7EDF,U+7EE7,U+7EEA,U+7EED,U+7EF4,U+7EF8,U+7EFF,U+7F13,U+7F18,U+7F29,U+7F3A,U+7F51,U+7F55,U+7F57,U+7F69,U+7F6E,U+7F8E,U+7F9E,U+7FA4,U+7FBD,U+7FFB,U+8001,U+8003,U+8005,U+800C,U+8026,U+803B,U+8054,U+80CC,U+80DC,U+80F6,U+80FD,U+8111,U+811A,U+81C6,U+81EA,U+81F3-81F4,U+8212,U+821E,U+822A,U+822C,U+826F,U+8272,U+827A,U+8282,U+82AF,U+82B1,U+82E5,U+82F1,U+8303,U+8349,U+8352,U+836F,U+83AB,U+83B2,U+83B7,U+83DC,U+843D,U+8457,U+8499,U+84DD,U+8584,U+85CF,U+85E4,U+8651,U+865A,U+878D,U+87BA,U+884C,U+8857,U+8865,U+8868,U+886C,U+8870,U+88AB,U+88C1,U+88C5,U+897F,U+8981,U+8986,U+89C1-89C2,U+89C4,U+89C6,U+89C8-89C9,U+89D2,U+89E3,U+89E6,U+8A00,U+8BA1,U+8BA4,U+8BA8-8BA9,U+8BB0,U+8BB2,U+8BB8,U+8BBA,U+8BBE-8BBF,U+8BC1,U+8BC4,U+8BC6,U+8BCD,U+8BD1,U+8BD5,U+8BDD,U+8BE0-8BE1,U+8BE5-8BE6,U+8BED,U+8BEF,U+8BF4,U+8BF7,U+8BFB,U+8C03,U+8C61,U+8C8C,U+8D1F,U+8D21,U+8D23,U+8D25,U+8D28,U+8D2F,U+8D34,U+8D44,U+8D56,U+8D70,U+8D77,U+8D85,U+8D8A-8D8B,U+8DC3,U+8DDD,U+8DDF,U+8DE8,U+8DEF,U+8DF3,U+8E0F,U+8E29-8E2A,U+8E48,U+8E66,U+8EAB,U+8F66,U+8F6C,U+8F6E-8F6F,U+8F74,U+8F7B,U+8F7D,U+8F83,U+8F85,U+8F89,U+8F91,U+8F99,U+8FA8,U+8FB1,U+8FB9,U+8FBE,U+8FC7,U+8FCE,U+8FD0-8FD1,U+8FD4,U+8FD8-8FD9,U+8FDB-8FDC,U+8FDE-8FDF,U+8FF0,U+8FFD,U+9000,U+9002-9003,U+9009,U+900F-9010,U+9014,U+901A,U+901D,U+901F-9020,U+903B,U+904D,U+9053,U+9057,U+906E,U+907F-9080,U+90A3,U+90AE,U+90BB,U+90E8,U+90FD,U+914D,U+91CA,U+91CC-91CF,U+9274,U+9488,U+94AE,U+94B3,U+94FA,U+94FE,U+9501,U+9519,U+952E-952F,U+955C,U+957F,U+95E8,U+95EA,U+95ED-95EE,U+95F4,U+95F8,U+9605,U+9608,U+961F,U+9633,U+9636,U+963B,U+9645,U+964C-964D,U+9650,U+9662,U+9664,U+9676,U+968F-9690,U+9694,U+969C,U+96BE,U+96C6,U+96D5,U+96F6,U+9700,U+9732,U+9752,U+9759,U+975E,U+9760,U+9762,U+97F3,U+9875-9876,U+9879-987B,U+9884,U+9891,U+9896,U+9898,U+989C-989D,U+98CE,U+98DE-98DF,U+9970,U+9988,U+9996,U+9999,U+9A6C,U+9A6F,U+9A71,U+9A7B,U+9A8C,U+9AA4,U+9AA8,U+9ABC,U+9AD8,U+9C7C,U+9C9C,U+9E23,U+9EC4,U+9ED1,U+9ED8,U+9EDB,U+9F13,U+9F20,U+9F50,U+9F7F,U+FF01-FF0C,U+FF0E-FF5D}:root{--bg: #050608;--bg-soft: #0c1020;--ink: #ece9e2;--ink-dim: #8f95a8;--blue: #5b7fd4;--cyan: #58b7d6;--purple: #8a68d8;--purple-deep: #5d3fa8;--green: #46a58a;--line: rgba(236, 233, 226, .16);--glass: rgba(93, 63, 168, .16);--font-calli: "Jinghua Laosong", "Songti SC", "STSong", serif;--font-display: "Jinghua Laosong", "Songti SC", "STSong", serif;--font-latin: "Jinghua Laosong", "Songti SC", "STSong", serif;--font-body: "Jinghua Laosong", "Songti SC", "STSong", serif}*{margin:0;padding:0;box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}.click-ripple-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;pointer-events:none;overflow:hidden}.click-ripple{position:absolute;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;border:1.5px solid rgba(216,204,255,.85);box-shadow:0 0 12px #8a68d873;opacity:0;will-change:transform,opacity;animation:clickRipple .9s cubic-bezier(.22,.61,.36,1) forwards}@keyframes clickRipple{0%{transform:scale(.25);opacity:.9}to{transform:scale(9);opacity:0}}button{background:none;border:none;color:inherit;font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}.nebula-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:0;transition:opacity 1.6s ease;background:#050608 url(/elements/background1.png) center / cover no-repeat}.nebula-layer[data-visible=true]{opacity:1}.canvas-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1}.topbar{position:fixed;top:0;left:0;right:0;z-index:10;display:flex;justify-content:space-between;align-items:flex-start;padding:26px 34px;pointer-events:none;transition:opacity .2s ease}body.lightbox-open .topbar,body.lightbox-open .topbar *{opacity:0;pointer-events:none}.topbar-logo{pointer-events:auto;display:block;line-height:0}.topbar-logo img{display:block;width:clamp(160px,15vw,220px);height:auto;transform:translate(-26px,-22px)}.topbar-right{pointer-events:auto;position:relative;--compass-size: clamp(44px, 7vw, 112px)}.compass-btn{display:grid;place-items:center;width:var(--compass-size);height:var(--compass-size);transition:transform .5s ease}.compass-btn img{width:90%;height:90%;object-fit:contain;display:block}.compass-btn:hover,.compass-btn.is-open{transform:rotate(45deg)}.settings-panel{position:absolute;top:calc(var(--compass-size) - 6px);right:0;width:280px;padding:20px 22px;border-radius:16px;background:linear-gradient(135deg,#5d3fa88c,#2d185ca6);border:1px solid rgba(185,167,255,.45);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 40px #00000080}.settings-row{display:flex;align-items:center;gap:14px}.settings-row+.settings-row{margin-top:16px}.settings-icon{width:36px;height:36px;object-fit:contain;flex-shrink:0}.settings-icon-lang{width:72px;height:72px;margin-block:-18px}.settings-panel input[type=range]{flex:1;accent-color:#b9a7ff}.settings-langs{display:flex;flex:1;justify-content:flex-end;gap:10px}.settings-langs button{padding:5px 16px;font-size:13px;letter-spacing:.06em;border:1px solid transparent;border-radius:4px;background:#ece9e21f;transition:all .25s ease}.settings-langs button.is-active{border-color:#b9a7ff;background:#b9a7ff38;box-shadow:0 0 0 1px #b9a7ff}.pill-btn{padding:16px 44px;border-radius:999px;border:1.5px solid var(--purple);color:#cabcf5;font-family:var(--font-latin);font-size:22px;letter-spacing:.12em;transition:border-color .35s ease,color .35s ease,box-shadow .35s ease}.pill-btn:hover{border-color:#b9a7ff;color:var(--ink);box-shadow:0 0 26px #8a68d880}.start-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.start-hero{position:absolute;left:50%;top:50%;transform:translate(calc(-50% - 200px),-50%)}.start-title-img{display:block;width:min(1040px,82vw);height:auto}.get-started{position:absolute;right:6vw;bottom:15vh;pointer-events:auto;padding:0;line-height:0;transition:transform .3s ease,filter .3s ease}.get-started img{display:block;width:clamp(210px,17vw,264px);height:auto}.get-started:hover{transform:scale(1.04);filter:drop-shadow(0 0 18px rgba(138,104,216,.55))}.scroll-spacer{height:var(--home-scroll-vh, 520vh);pointer-events:none}.home-scroll .start-page,.home-scroll .contact-page,.home-scroll .work-page,.home-scroll .play-page{transition:opacity .12s linear;will-change:opacity}:root:not(.home-scroll) .scroll-spacer{display:none}.scroll-cue{position:absolute;left:50%;bottom:12vh;transform:translate(-50%);width:1px;height:56px;overflow:hidden}.scroll-cue-line{display:block;width:1px;height:100%;background:linear-gradient(to bottom,#ece9e200,#ece9e2b3,#ece9e200);animation:scrollCue 2.4s ease-in-out infinite}@keyframes scrollCue{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.start-copyright{position:absolute;bottom:3.6vh;left:50%;transform:translate(-50%);font-size:12px;letter-spacing:.34em;color:var(--ink-dim)}.work-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.work-left{position:absolute;left:4vw;bottom:18vh;max-width:480px}.work-question{font-family:var(--font-display);font-weight:400;font-size:clamp(17px,1.5vw,22px);letter-spacing:.05em;margin-bottom:22px;white-space:nowrap}.work-cats{list-style:none;display:flex;flex-direction:column;gap:14px}.work-cat{pointer-events:auto;font-family:var(--font-display);font-size:clamp(13px,1.05vw,16px);letter-spacing:.06em;color:#a18fe0;text-align:left;padding-left:2em;text-indent:-2em;transition:color .3s ease,text-shadow .3s ease,transform .3s ease}.work-cat .arrow{color:var(--purple);margin-right:6px;font-family:var(--font-body)}.work-cat:hover{color:#cabcf5;transform:translate(6px)}.work-cat.is-active{color:var(--ink);text-shadow:0 0 18px rgba(138,104,216,.8)}.work-projects{list-style:none;margin:8px 0 4px 28px;display:flex;flex-direction:column;gap:6px}.work-projects button{pointer-events:auto;font-size:12.5px;color:var(--ink-dim);letter-spacing:.05em;transition:color .25s ease}.work-projects button:hover{color:var(--ink)}.work-nav{position:absolute;left:4vw;bottom:7vh;pointer-events:auto;display:inline-flex;align-items:center;gap:20px;padding:14px 34px;border-radius:999px;border:1.5px solid transparent;background:linear-gradient(var(--bg),var(--bg)) padding-box,linear-gradient(90deg,var(--green),var(--purple)) border-box;font-family:var(--font-display);font-size:18px;letter-spacing:.1em}.work-nav a,.work-nav button{font:inherit;letter-spacing:inherit;color:var(--ink-dim);transition:color .25s ease}.work-nav a:hover,.work-nav a.active,.work-nav button:hover{color:var(--ink)}.nav-dash{width:44px;height:1px;background:var(--purple)}.work-hint{position:absolute;right:4vw;bottom:6vh;font-size:12.5px;letter-spacing:.18em;color:var(--ink-dim)}.play-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;opacity:0;visibility:hidden}.play-head{position:absolute;left:max(34%,320px);right:4vw;top:20%;max-width:min(46ch,42vw)}.play-kicker{display:block;font-family:var(--font-display);font-size:clamp(15px,1.45vw,21px);letter-spacing:.22em;text-transform:uppercase;color:var(--purple)}.play-viewport{position:absolute;left:max(34%,320px);right:4vw;top:35%;bottom:8vh;pointer-events:auto;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 24px,#000 calc(100% - 64px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 24px,#000 calc(100% - 64px),transparent 100%)}.play-grid{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,clamp(180px,25vw,460px)));gap:clamp(18px,2vw,34px) clamp(14px,1.5vw,26px);padding:24px 0 64px;will-change:transform}.play-item{display:block;width:100%;text-align:left;animation:playDrift 7.2s ease-in-out infinite}@keyframes playDrift{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.play-thumb{display:block;position:relative;aspect-ratio:2.2 / 1.4;overflow:hidden;border-radius:8px;border:1px solid rgba(236,233,226,.22);background:#0a0c1699;transition:border-color .45s ease,box-shadow .45s ease,transform .4s cubic-bezier(.22,1,.36,1)}.play-thumb video,.play-thumb img{width:100%;height:100%;object-fit:cover;display:block;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.play-thumb--empty{display:grid;place-items:center;background:linear-gradient(148deg,color-mix(in srgb,var(--play-tint, #8a68d8) 42%,#0b0e1a),color-mix(in srgb,var(--play-tint, #8a68d8) 10%,#0b0e1a))}.play-thumb-empty-label{font-family:var(--font-display);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#ece9e29e}.play-meta{display:block;margin-top:9px}.play-meta em{display:block;font-family:var(--font-display);font-style:normal;font-size:14px;letter-spacing:.03em;color:var(--ink)}.play-meta>span{display:block;margin-top:4px;font-size:9.5px;letter-spacing:.14em;color:#ece9e28c}.play-item:hover,.play-item:focus-visible{animation-play-state:paused}.play-item:hover .play-thumb,.play-item:focus-visible .play-thumb{transform:translateY(-6px);border-color:color-mix(in srgb,var(--play-tint, #8a68d8) 75%,transparent);box-shadow:0 0 26px color-mix(in srgb,var(--play-tint, #8a68d8) 38%,transparent)}@media(prefers-reduced-motion:reduce){.play-item{animation:none}}.ring-card-stage{position:relative;display:grid;place-items:center;-webkit-user-select:none;user-select:none}.ring-card-veil-clip{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;border-radius:inherit;pointer-events:none}.ring-card-veil{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;padding:10px 10px 12px;text-align:left;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 82%,transparent),color-mix(in srgb,var(--bg) 95%,transparent) 42%);will-change:transform}.card-tags{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:3px}.card-tags-x{font-family:var(--font-display);font-style:normal;font-size:9px;line-height:1;margin-right:-2px;color:var(--purple)}.play-meta .play-tags{display:flex;gap:6px;margin-top:8px;letter-spacing:normal}.play-meta .play-tags>:not(.card-tags-x){height:22px;padding:0 10px;font-size:10px;letter-spacing:.06em}.play-meta .play-tags>.card-tags-x{font-size:13px;margin-right:0}.card-tags>:not(.card-tags-x){display:inline-flex;align-items:center;height:15px;padding:0 6.5px;border-radius:999px;border:1px solid color-mix(in srgb,var(--purple) 78%,transparent);font-size:6px;line-height:1;letter-spacing:.05em;white-space:nowrap;color:#cabcf5;background:color-mix(in srgb,var(--purple) 14%,transparent)}.ring-card-veil-body{display:flex;flex-direction:column;gap:2px}.ring-card-veil-year{font-family:var(--font-display);font-size:9px;letter-spacing:.2em;color:var(--purple)}.ring-card-veil-title{font-family:var(--font-display);font-weight:600;font-size:15px;line-height:1.15;letter-spacing:.03em;color:var(--ink)}.ring-card-veil-desc{margin-top:2px;font-size:8px;font-style:italic;line-height:1.4;color:#ece9e2cc}.project-page{position:relative;z-index:2;min-height:100vh;background:linear-gradient(#050608d1,#050608f0)}.project-shell{max-width:960px;margin:0 auto;padding:130px 28px 80px}.project-back{font-size:14px;letter-spacing:.12em;color:var(--ink-dim);transition:color .25s ease}.project-back:hover{color:var(--ink)}.project-header h1{margin-top:22px;font-family:var(--font-display);font-weight:600;font-size:clamp(40px,6vw,64px);letter-spacing:.04em}.project-meta-line{margin-top:10px;font-size:14px;letter-spacing:.14em;color:var(--accent, var(--purple))}.project-content{margin-top:64px;display:flex;flex-direction:column;gap:40px}.text-section h2{font-family:var(--font-display);font-weight:600;font-size:26px;letter-spacing:.06em;margin-bottom:18px;color:var(--ink)}.text-section h2:before{content:"";display:inline-block;width:26px;height:2px;background:var(--accent, var(--purple));vertical-align:middle;margin-right:14px}.text-section h2.no-dash:before{content:none}.text-section p{font-size:16.5px;line-height:1.9;color:#ece9e2d9;max-width:82ch}.text-section p+p{margin-top:14px}.link-button{display:inline-flex;align-items:center;gap:9px;padding:12px 26px;font-size:14px;letter-spacing:.12em;color:var(--ink);background:color-mix(in srgb,var(--accent, var(--purple)) 26%,transparent);border:1px solid color-mix(in srgb,var(--accent, var(--purple)) 60%,var(--line));border-radius:999px;cursor:pointer;transition:background .25s ease,transform .25s ease,box-shadow .25s ease}.link-button:after{content:"↗";font-size:15px;opacity:.8}.link-button:hover{background:color-mix(in srgb,var(--accent, var(--purple)) 42%,transparent);transform:translateY(-2px);box-shadow:0 12px 30px color-mix(in srgb,var(--accent, var(--purple)) 30%,transparent)}.lock-icon{width:22px;height:22px;flex:none;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.lock-shackle{transform-box:view-box;transform-origin:16.5px 10.5px;transition:transform .45s cubic-bezier(.34,1.56,.64,1)}.lock-pin{transition:transform .3s ease;transform-box:view-box;transform-origin:12px 15.4px}.locked-link-button{display:inline-flex;align-items:center;gap:11px;padding:11px 24px 11px 18px;font-size:14px;letter-spacing:.12em;color:var(--ink);background:color-mix(in srgb,var(--accent, var(--purple)) 26%,transparent);border:1px solid color-mix(in srgb,var(--accent, var(--purple)) 60%,var(--line));border-radius:999px;cursor:pointer;transition:background .25s ease,transform .25s ease,box-shadow .25s ease}.locked-link-button:hover{background:color-mix(in srgb,var(--accent, var(--purple)) 42%,transparent);transform:translateY(-2px);box-shadow:0 12px 30px color-mix(in srgb,var(--accent, var(--purple)) 30%,transparent)}.locked-link-button:hover .lock-shackle{transform:translateY(-1.6px)}.locked-link-button:hover .lock-pin{transform:rotate(180deg)}.locked-link-form{display:flex;flex-wrap:wrap;align-items:center;gap:14px;animation:lockedReveal .4s cubic-bezier(.22,1,.36,1)}.locked-link-form .lock-icon{width:26px;height:26px;color:color-mix(in srgb,var(--accent, var(--purple)) 70%,var(--ink));transition:color .3s ease}.locked-link-cells{position:relative;display:flex;gap:10px;cursor:text}.locked-link-cell{position:relative;width:30px;height:38px;border-bottom:1px solid color-mix(in srgb,var(--ink) 30%,transparent);transition:border-color .25s ease,transform .25s ease;animation:lockedCellIn .45s cubic-bezier(.22,1,.36,1) both}.locked-link-cell.is-active{border-bottom-color:var(--accent, var(--purple));animation:lockedCellIn .45s cubic-bezier(.22,1,.36,1) both,lockedBreath 1.6s ease-in-out .45s infinite}.locked-link-cell:after{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--ink);transform:scale(0);transition:transform .25s cubic-bezier(.34,1.56,.64,1),background .25s ease}.locked-link-cell.is-filled:after{transform:scale(1)}.locked-link-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;border:0;background:none;color:transparent;caret-color:transparent;font-size:16px;outline:none;cursor:text}.locked-link-cancel{width:30px;height:30px;font-size:18px;line-height:1;color:var(--ink-dim);background:none;border:1px solid transparent;border-radius:50%;cursor:pointer;transition:color .2s ease,border-color .2s ease,transform .3s ease}.locked-link-cancel:hover{color:var(--ink);border-color:var(--line);transform:rotate(90deg)}.locked-link-hint{flex-basis:100%;min-height:1.2em;font-size:12.5px;letter-spacing:.1em;color:var(--ink-dim);transition:color .25s ease}.locked-link.is-wrong .locked-link-cells{animation:lockedShake .5s ease}.locked-link.is-wrong .locked-link-cell{border-bottom-color:#d9686b}.locked-link.is-wrong .locked-link-cell:after{background:#e08a8c}.locked-link.is-wrong .locked-link-hint{color:#e08a8c}.locked-link.is-wrong .lock-icon{color:#e08a8c;animation:lockedRattle .5s ease}.locked-link.is-ok .lock-icon{color:var(--green)}.locked-link.is-ok .lock-shackle{transform:rotate(-38deg) translate(.5px,-1px)}.locked-link.is-ok .lock-pin{transform:rotate(90deg)}.locked-link.is-ok .locked-link-cell{border-bottom-color:var(--green);transform:translateY(-2px)}.locked-link.is-ok .locked-link-cell:after{background:var(--green);box-shadow:0 0 12px color-mix(in srgb,var(--green) 70%,transparent)}.locked-link.is-ok .locked-link-hint{color:var(--green)}@keyframes lockedReveal{0%{opacity:0;transform:translateY(6px)}}@keyframes lockedCellIn{0%{opacity:0;transform:translateY(8px)}}@keyframes lockedBreath{50%{border-bottom-color:color-mix(in srgb,var(--accent, var(--purple)) 40%,transparent)}}@keyframes lockedShake{20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes lockedRattle{20%{transform:rotate(-8deg)}40%{transform:rotate(8deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(5deg)}}@media(prefers-reduced-motion:reduce){.locked-link-form,.locked-link-cell,.locked-link.is-wrong .locked-link-cells,.locked-link.is-wrong .lock-icon{animation:none}}.gif-group>.gif-note,.echo-steps>.gif-note{margin-bottom:16px;font-size:13.5px;letter-spacing:.08em;color:var(--ink-dim)}.echo-flow{display:flex;gap:22px;align-items:flex-start}.echo-flow-diagram{flex:0 0 40%}.echo-steps{flex:1;min-width:0}.gif-caption{max-width:88ch;margin:4px auto 0;font-size:16.5px;line-height:1.9;text-align:center;color:#ece9e2d9}.text-section ul.reveal-list{margin:4px 0 0;padding-left:1.1em;list-style:none}.text-section ul.reveal-list li{position:relative;padding-left:4px;margin-top:10px;font-size:16.5px;line-height:1.7;color:#ece9e2d9}.text-section ul.reveal-list li:before{content:"—";position:absolute;left:-1.1em;color:var(--accent, var(--purple))}@media(max-width:760px){.echo-flow{flex-direction:column}.echo-flow-diagram{flex:none;width:100%}}.image-grid{display:grid;gap:18px;align-items:center}.image-grid.cols-1{grid-template-columns:1fr}.image-grid.cols-2{grid-template-columns:repeat(2,1fr)}.image-grid.cols-3{grid-template-columns:repeat(3,1fr)}.image-grid figure{position:relative;overflow:hidden;border-radius:14px}.image-grid figure:only-child{grid-column:1 / -1}.image-grid img,.image-grid video{width:100%;height:100%;object-fit:cover;display:block}.image-grid figure.has-contain{background:var(--bg-soft);border:1px solid var(--line)}.image-grid img.fit-contain,.image-grid video.fit-contain{object-fit:contain}.image-tag{position:absolute;top:12px;left:12px;padding:5px 12px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:color-mix(in srgb,var(--bg) 74%,transparent);border:1px solid var(--line);border-radius:999px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:none}.image-caption-out{font-size:12.5px;letter-spacing:.1em;color:var(--ink-dim);text-align:center}.image-zoomable{cursor:zoom-in;transition:filter .3s ease}.image-zoomable:hover{filter:brightness(1.08)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:4vh 4vw;background:#050608e6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:zoom-out;animation:lightboxIn .28s ease}.lightbox-media{width:auto;height:88vh;max-width:94vw;max-height:88vh;object-fit:contain;border-radius:10px;border:1px solid var(--line);box-shadow:0 30px 90px #000000a6;cursor:zoom-in;cursor:default;animation:lightboxZoom .32s cubic-bezier(.2,.8,.3,1)}.lightbox.is-full{display:block;overflow:auto;padding:0;cursor:zoom-out}.lightbox.is-full .lightbox-media{display:block;width:auto;height:auto;max-width:none;max-height:none;min-width:100%;min-height:100%;object-fit:none;object-position:center;margin:0 auto;border-radius:0;border:0;box-shadow:none;cursor:zoom-out}.lightbox-close{position:absolute;top:clamp(12px,3vh,40px);right:clamp(12px,3vw,44px);z-index:3;display:grid;place-items:center;width:44px;height:44px;border-radius:999px;color:var(--ink);background:color-mix(in srgb,var(--bg) 55%,transparent);border:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .25s ease,transform .25s ease}.lightbox-close:hover{background:color-mix(in srgb,var(--accent, var(--purple)) 34%,var(--bg));transform:rotate(90deg)}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;display:grid;place-items:center;width:52px;height:52px;border-radius:999px;color:var(--ink);background:color-mix(in srgb,var(--bg) 55%,transparent);border:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;transition:background .2s ease,transform .2s ease}.lightbox-nav:hover{background:color-mix(in srgb,var(--accent, var(--purple)) 34%,var(--bg))}.lightbox-nav.prev{left:clamp(12px,3vw,44px)}.lightbox-nav.next{right:clamp(12px,3vw,44px)}.lightbox-nav.prev:hover{transform:translateY(-50%) translate(-2px)}.lightbox-nav.next:hover{transform:translateY(-50%) translate(2px)}.lightbox-tag{position:absolute;bottom:clamp(10px,2vh,22px);left:50%;transform:translate(-50%);z-index:2;max-width:94vw;font-family:var(--font-display);font-size:13px;letter-spacing:.12em;white-space:nowrap;color:var(--ink-dim);pointer-events:none}@keyframes lightboxIn{0%{opacity:0}}@keyframes lightboxZoom{0%{opacity:0;transform:scale(.9)}}.image-placeholder{width:100%;height:100%;display:grid;place-items:center;background:radial-gradient(120% 130% at 20% 10%,color-mix(in srgb,var(--accent, #8a68d8) 32%,transparent),transparent 60%),radial-gradient(120% 130% at 85% 90%,rgba(91,127,212,.25),transparent 60%),var(--bg-soft);border:1px solid var(--line);border-radius:14px}.image-placeholder span{font-size:12.5px;letter-spacing:.18em;color:var(--ink-dim)}.image-grid figcaption,.video-block figcaption{margin-top:10px;font-size:12.5px;letter-spacing:.1em;color:var(--ink-dim)}.video-frame{width:100%;border-radius:14px;overflow:hidden;background:var(--bg-soft)}.video-frame video,.video-frame iframe{width:100%;height:100%;display:block;border:0}.video-frame video{object-fit:contain}.project-footer{margin-top:96px;padding-top:28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}.project-footer button{font-size:14px;letter-spacing:.08em;color:var(--ink-dim);transition:color .25s ease}.project-footer button:hover{color:var(--ink)}.detail-loading{padding:60px 0;text-align:center;color:var(--ink-dim)}.contact-page{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;--card-teal: rgba(86, 156, 156, .86);--card-teal-soft: rgba(120, 178, 178, .34)}.contact-stage{position:absolute;right:5vw;top:56%;transform:translateY(-50%);width:min(max(50vw,540px),780px,88vw);animation:contactFloat 7s ease-in-out infinite}@keyframes contactFloat{0%{transform:translateY(calc(-50% - 8px)) translate(0)}50%{transform:translateY(calc(-50% + 10px)) translate(-5px)}to{transform:translateY(calc(-50% - 8px)) translate(0)}}.contact-card-3d{pointer-events:auto;display:block;width:100%;height:min(62vh,560px);padding:0;cursor:pointer;perspective:1800px;background:none}.contact-card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .85s cubic-bezier(.45,.05,.2,1)}.contact-card-inner.is-flipped{transform:rotateY(180deg)}.contact-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:34px;background:linear-gradient(135deg,#d4f8f34d,#aae2de29);backdrop-filter:blur(20px) saturate(1.25) brightness(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.25) brightness(1.4);border:1.5px solid rgba(255,255,255,.6);box-shadow:0 30px 80px #00000057,inset 0 2px 1px #ffffffb3,inset 0 -16px 38px #96d2d029,inset 0 1px 30px #ffffff2e;overflow:visible}.contact-card-inner:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:30px;background:#aadad61f;transform:translateZ(-16px);box-shadow:0 0 26px #96d2d040}.contact-front{padding:clamp(20px,3.6vh,40px) 8%;display:flex;flex-direction:column;align-items:flex-start;text-align:left}.contact-front h2,.contact-back h2{font-family:var(--font-display);font-weight:600;font-size:clamp(28px,2.9vw,42px);letter-spacing:.06em;text-align:left;color:var(--ink)}.contact-back p{margin-top:clamp(10px,2vh,18px);flex-shrink:0;font-size:clamp(13px,min(1.2vw,2.2vh),17px);line-height:1.55;text-align:left;color:#ffffffe6;max-width:62ch}.about-edu{margin-top:clamp(14px,2.6vh,26px);flex-shrink:0;width:66%;max-width:66%;font-size:clamp(14px,min(1.3vw,2.3vh),18px);line-height:1.5;text-align:left}.about-edu-school{font-family:var(--font-display);font-weight:600;font-size:1.2em;line-height:1.3;letter-spacing:.02em;color:var(--ink)}.about-edu-college{display:block;margin-top:2px;font-size:.82em;font-weight:400;letter-spacing:.03em;color:#fffc}.about-edu-list{margin-top:clamp(12px,2vh,20px);display:grid;grid-template-columns:max-content 1fr;column-gap:clamp(14px,1.6vw,28px);row-gap:clamp(6px,1.2vh,12px)}.about-edu-list dt{font-size:.82em;letter-spacing:.16em;text-transform:uppercase;color:#ffffff80;align-self:baseline}.about-edu-list dd{color:#ffffffe0}.contact-aside{position:absolute;top:-7%;right:6%;width:26%}.contact-photo{display:block;width:100%;aspect-ratio:293 / 366;object-fit:cover;border-radius:18px;box-shadow:0 12px 30px #0006}.contact-links-title{margin-top:16%;text-align:center;font-size:clamp(10px,.85vw,12.5px);letter-spacing:.14em;text-transform:uppercase;color:#ece9e299;white-space:nowrap}.contact-links{margin-top:8%;display:grid;grid-template-columns:repeat(2,max-content);justify-content:center;gap:clamp(12px,1.3vw,22px);place-items:center}.contact-link{pointer-events:auto;display:inline-flex;border-radius:10px;transition:transform .25s ease,filter .25s ease}.contact-link img{display:block;width:clamp(40px,3.9vw,60px);height:auto}.contact-link:hover{transform:translateY(-3px);filter:brightness(1.3)}.contact-link:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.contact-back{transform:rotateY(180deg);padding:clamp(20px,3.6vh,40px) 8%;display:flex;flex-direction:column;align-items:flex-start;text-align:left}.contact-hint{margin-top:22px;text-align:center;font-size:14px;letter-spacing:.12em;color:#cabcf5d9}.contact-page .work-nav{pointer-events:auto}@media(max-width:760px){.image-grid.cols-3,.image-grid.cols-2{grid-template-columns:1fr}.project-shell{padding-top:96px}.project-footer{flex-direction:column;gap:12px}.topbar{padding:14px 16px}.topbar-logo img{width:clamp(96px,24vw,130px);transform:translate(-8px,-6px)}.settings-panel{width:232px}.start-hero{left:50%;top:50%;transform:translate(-50%,-50%)}.start-copyright{font-size:9px;letter-spacing:.14em;bottom:2vh}.get-started{right:5vw;bottom:8.5vh}.get-started img{width:min(230px,52vw)}.work-left{left:6vw;right:auto;bottom:16vh;max-width:42vw}.work-question{font-size:clamp(11px,3vw,15px);margin-bottom:10px}.work-cat{font-size:clamp(10px,2.7vw,13px);letter-spacing:.04em}.work-cats{gap:8px}.work-nav{left:6vw;bottom:5.5vh;font-size:12px;padding:8px 16px;gap:10px}.nav-dash{width:20px}.play-head,.play-viewport{left:54%}.play-head{max-width:none}.play-grid{grid-template-columns:minmax(0,1fr)}.play-kicker{font-size:clamp(12px,3.2vw,15px);letter-spacing:.16em}.play-meta em{font-size:12px}.play-meta>span{font-size:8px;letter-spacing:.1em}.contact-stage{right:4vw;width:92vw;top:52%}.contact-card-3d{height:min(560px,78vh)}.contact-front,.contact-back{padding:clamp(16px,2.8vh,30px) 7%}.about-edu{margin-top:clamp(12px,2.2vh,20px);font-size:clamp(12px,3.4vw,15px)}.contact-front h2,.contact-back h2{font-size:clamp(28px,7vw,40px)}.contact-back p{font-size:clamp(12px,3.3vw,15px)}.contact-links-title{font-size:9px;letter-spacing:.1em}.contact-aside{width:30%}.contact-hint{font-size:11px}}
