@charset "UTF-8";@font-face{font-family:Portfolio Sans;font-style:normal;font-weight:45 920;font-display:swap;src:url(/assets/fonts/site-sans-core.woff2) format("woff2");unicode-range:U+20-7E,U+B7,U+2192,U+AC00-AC01,U+AC04,U+AC10-AC11,U+AC15,U+AC1C-AC1D,U+AC31,U+AC70,U+AC74,U+AC77,U+AC80,U+AC83,U+AC8C,U+ACB0,U+ACBD,U+ACC4,U+ACE0,U+ACE8,U+ACF3,U+ACF5,U+ACFC,U+AD00,U+AD6C-AD6D,U+ADDC,U+ADF8,U+ADFC,U+AE08,U+AE30,U+AE34,U+AE40,U+AE4C,U+AE65,U+AED8,U+AFB8,U+B098,U+B09C,U+B0B4,U+B108,U+B10C,U+B110,U+B118,U+B123,U+B125,U+B150,U+B178,U+B17C,U+B193,U+B204,U+B294,U+B2A5,U+B2C8,U+B2E4,U+B2E8,U+B2F4,U+B2F9,U+B300,U+B354,U+B370,U+B378,U+B3C4,U+B3CC,U+B3D9,U+B450,U+B458,U+B465,U+B4A4,U+B4DC,U+B4E0,U+B4E4,U+B4F1,U+B514,U+B529-B52A,U+B54C,U+B6F0,U+B77C-B77D,U+B78C,U+B798,U+B7A8,U+B7B5,U+B7EC,U+B808,U+B80C,U+B81B,U+B824-B825,U+B82C,U+B85C-B85D,U+B864,U+B8CC,U+B8E8,U+B8F9,U+B958,U+B974,U+B97C,U+B984,U+B9AC-B9AD,U+B9BC-B9BD,U+B9C1,U+B9C8-B9C9,U+B9CC,U+B9DD-B9DE,U+B9E1,U+B9E4,U+BA4D,U+BA54,U+BA70,U+BA74,U+BA85,U+BAA8-BAA9,U+BAB0,U+BB34,U+BB36,U+BB38,U+BB3C,U+BBF8,U+BC0F,U+BC14,U+BC18,U+BC1C,U+BC29,U+BC30,U+BC84,U+BC88,U+BC95,U+BCA4,U+BCA8,U+BCC0,U+BCC4,U+BCF4,U+BCF8,U+BCFC,U+BD05,U+BD80,U+BD84,U+BD99,U+BDF0,U+BE0C,U+BE14,U+BE44,U+BE4C,U+BE80,U+C0AC,U+C0B0,U+C0B4,U+C0BD,U+C0C1,U+C0C8-C0C9,U+C0D8,U+C0DD,U+C11C-C11D,U+C120,U+C124,U+C131,U+C138,U+C18C-C18D,U+C194,U+C1A1,U+C1FC,U+C218,U+C21C,U+C220,U+C2A4,U+C2B5,U+C2DC-C2DD,U+C2E0,U+C2E4,U+C2F1,U+C2F6,U+C313,U+C37C,U+C4F0,U+C4F8,U+C544,U+C548,U+C54C,U+C558,U+C560,U+C571,U+C5B4,U+C5C5-C5C6,U+C5C8,U+C5D0,U+C5D4,U+C5EC-C5ED,U+C5F0,U+C5F4,U+C601,U+C608,U+C624,U+C628,U+C637,U+C640,U+C678,U+C694,U+C6A9,U+C6B0,U+C6B4,U+C6D0,U+C6E8,U+C6F9,U+C704,U+C708,U+C73C,U+C740,U+C744,U+C758,U+C774,U+C778,U+C77C-C77D,U+C785,U+C788,U+C790-C791,U+C7A1,U+C7A5,U+C7AC,U+C7B4,U+C7BD,U+C800-C801,U+C804,U+C810-C811,U+C815,U+C81C-C81D,U+C870,U+C885,U+C88C,U+C8FC,U+C900,U+C904,U+C90D,U+C911,U+C988,U+C99D,U+C9C0-C9C1,U+C9C4,U+C9C8,U+C9D1,U+C9D5,U+C9DA,U+CABD,U+CC28-CC29,U+CC38,U+CC3D-CC3E,U+CC44,U+CC54,U+CC98,U+CC9C,U+CCAD,U+CCB4,U+CCD0,U+CCE4,U+CD08,U+CD94,U+CD9C,U+CDB0,U+CE21,U+CE58-CE59,U+CE5C,U+CE69,U+CE74,U+CE90,U+CEA1,U+CEE4,U+CEF4,U+CF13,U+CF54,U+CF58,U+D06C,U+D074,U+D0A4,U+D0D0,U+D0DC-D0DD,U+D130,U+D138,U+D14D,U+D1A0-D1A1,U+D1B1,U+D1B5,U+D22C,U+D2B8-D2B9,U+D2F1,U+D300,U+D30C,U+D310,U+D328,U+D37C,U+D398,U+D3B4,U+D3B8,U+D3C9,U+D3EC,U+D45C,U+D488,U+D4E8,U+D504,U+D508,U+D50C,U+D53C,U+D544,U+D551,U+D558-D559,U+D55C,U+D560,U+D568-D569,U+D574,U+D588-D589,U+D5C8,U+D5D8,U+D600,U+D604,U+D611,U+D615,U+D638,U+D63C,U+D654-D655,U+D658,U+D65C,U+D68C,U+D734,U+D750,U+D78C,U+D790}@font-face{font-family:Portfolio Sans;font-style:normal;font-weight:45 920;font-display:swap;src:url(/assets/fonts/site-sans-content.woff2) format("woff2");unicode-range:U+B0-B2,U+B9,U+C4,U+D6-D8,U+DC,U+DF-E0,U+E4,U+F6,U+FC,U+200B,U+2013-2015,U+2019,U+201C-201E,U+2026,U+2075,U+2212,U+25B6,U+3001-3002,U+300C-300D,U+3010-3011,U+301C,U+3042,U+3044,U+3046,U+3048,U+304A-305B,U+305D-3061,U+3063-306B,U+306D-3070,U+3072-3073,U+3076,U+3078-3079,U+307B-307C,U+307E-3082,U+3084,U+3086-308D,U+308F,U+3092-3093,U+30A1-30A4,U+30A6-30AD,U+30AF-30BB,U+30BD,U+30BF-30C1,U+30C3-30C4,U+30C6-30CB,U+30CD-30E7,U+30E9-30ED,U+30EF,U+30F3,U+30FB-30FC,U+3131,U+AC08,U+AC12,U+AC14,U+AC19,U+AC78,U+AC81,U+AC89,U+ACA8-ACA9,U+ACAC,U+ACB9,U+ACBC,U+ACE1,U+ACF1,U+ACFD,U+AD50,U+AD70,U+AD74,U+ADC0,U+ADE0,U+AE00,U+AE09,U+AE0B,U+AE38,U+AE41,U+AE4A,U+AE4E,U+AE50,U+AE5D,U+AE68,U+AEBC,U+AED0,U+AF34,U+AFBC,U+AFD4,U+B00C,U+B010,U+B01D,U+B044,U+B048,U+B04A,U+B04C,U+B054,U+B05D,U+B07C,U+B0A0,U+B0A8-B0A9,U+B0AC,U+B0AE,U+B0B8,U+B0C5,U+B0C8-B0C9,U+B113,U+B124,U+B12C,U+B137,U+B141,U+B144,U+B179,U+B192,U+B208,U+B20C,U+B215,U+B220,U+B234,U+B274,U+B290,U+B298,U+B2A6,U+B2AC,U+B2CC,U+B2D8-B2D9,U+B2DD,U+B2E5,U+B2EB-B2EC,U+B2EE,U+B2F5,U+B2FF,U+B304,U+B308,U+B313,U+B358,U+B35C,U+B367,U+B36E,U+B371,U+B3C5,U+B410,U+B418,U+B41C,U+B429,U+B454,U+B461,U+B480,U+B4B7,U+B4C8,U+B4EC-B4ED,U+B530,U+B5A0,U+B5A4,U+B5A8,U+B5BB,U+B610-B611,U+B6AB,U+B728,U+B72C,U+B73B,U+B760,U+B780,U+B78D,U+B790,U+B799,U+B79C,U+B7AB,U+B7C9,U+B7F0,U+B7FC,U+B828,U+B835,U+B838-B839,U+B840,U+B860,U+B86F,U+B8F8,U+B904,U+B978,U+B985,U+B9B0,U+B9B4,U+B9CE,U+B9D0,U+B9E5,U+B9E8,U+B9F5,U+BA38,U+BA3C,U+BA40,U+BA48,U+BA58,U+BA87,U+BAB8,U+BABB,U+BBAC,U+BBC0,U+BBFC,U+BC00,U+BC11,U+BC15-BC16,U+BC1B,U+BC1D,U+BC31,U+BC34,U+BC8C,U+BC94,U+BC97,U+BCA0,U+BCBD,U+BCD1,U+BCF5,U+BD07,U+BD24,U+BD81,U+BD88,U+BD95,U+BE48,U+BE60,U+BE68,U+BE7C,U+BE84,U+BF51,U+BFD0,U+BFD4,U+C0AD,U+C0BC,U+C0BF,U+C11E,U+C12D,U+C139,U+C14B-C14C,U+C154,U+C158,U+C190,U+C1C4,U+C20F,U+C219,U+C228,U+C26C,U+C27D,U+C288,U+C2AC,U+C2B7,U+C2B9,U+C2EC-C2ED,U+C30D,U+C368,U+C36C,U+C3E0,U+C501,U+C529,U+C54A,U+C555,U+C559,U+C55E,U+C574,U+C57C-C57D,U+C591,U+C5B8,U+C5BC,U+C5C7,U+C5E3,U+C5FD,U+C600,U+C606,U+C61B,U+C62C,U+C62E,U+C635,U+C644,U+C67C,U+C6C0-C6C1,U+C6C3,U+C6CC,U+C6D4,U+C717,U+C720-C721,U+C724,U+C728,U+C74C-C74D,U+C751,U+C775,U+C784,U+C787,U+C794,U+C798,U+C7A0,U+C7AD,U+C7B0,U+C808,U+C838,U+C84C,U+C874,U+C881,U+C88B,U+C998,U+C9D0,U+C9DC-C9DD,U+C9E7,U+C9F8,U+CA61,U+CC0D,U+CC2C,U+CC30,U+CC45,U+CC99,U+CCA8-CCA9,U+CCAB,U+CD09,U+CD18,U+CD2C,U+CD5C,U+CD95,U+CD98,U+CDA4-CDA5,U+CDA9,U+CDE8,U+CE20,U+CE35,U+CE60,U+CE68,U+CE6D,U+CE78,U+CEE8,U+CEEC,U+CEF5,U+CEF7,U+CF00,U+CF1C,U+CF20,U+CF2D,U+CF30,U+CFE0,U+D050,U+D070,U+D0B7,U+D0C0-D0C1,U+D0D5,U+D0ED,U+D131,U+D134,U+D140,U+D14C,U+D15C-D15D,U+D1A4,U+D280,U+D284,U+D2BC,U+D2C0,U+D2F0,U+D305,U+D30E,U+D314,U+D3D0,U+D3ED,U+D3F4,U+D3FC,U+D478,U+D480,U+D53D,U+D540,U+D56D,U+D575,U+D5A5,U+D5E4,U+D5F7,U+D614,U+D640,U+D648,U+D669,U+D68D,U+D69F,U+D6A8,U+D6C4,U+D720,U+D751,U+D754,U+D788,U+D799,U+D7A3,U+FF06,U+FF08-FF09,U+FF0C,U+FF0F,U+FF14,U+FF1A-FF1B,U+FF1F,U+FF5E}@font-face{font-family:Portfolio CJK;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/site-cjk-common.woff2) format("woff2");unicode-range:U+4E2D,U+4F53,U+6587,U+65E5,U+672C,U+7B80,U+8A9E}@font-face{font-family:Portfolio Japanese;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/site-cjk-ja.woff2) format("woff2");unicode-range:U+3005,U+4E00,U+4E07-4E0B,U+4E0D-4E0E,U+4E21,U+4E26,U+4E2D,U+4E38,U+4E3B,U+4E57,U+4E86,U+4E88,U+4E8B,U+4E92,U+4EA4,U+4EBA,U+4ECA-4ECB,U+4ED5-4ED6,U+4ED8,U+4EE3,U+4EE5,U+4EEE,U+4EF6,U+4F01,U+4F0F,U+4F1A,U+4F1D,U+4F34,U+4F38,U+4F3C,U+4F4D-4F4F,U+4F53,U+4F55,U+4F59,U+4F5C,U+4F75,U+4F7F,U+4F8B,U+4F9B,U+4F9D,U+4FA1,U+4FC2,U+4FDD,U+4FE1,U+4FEE,U+500B,U+500D,U+5019,U+5024,U+504F,U+505C,U+5074,U+508D,U+5099,U+50B7,U+50CD,U+50CF,U+512A,U+5143,U+5148,U+5165,U+5168,U+516C,U+5171,U+5177,U+5185-5186,U+518D,U+5199,U+51B7,U+51CD,U+51E6,U+51F8-51FA,U+5206-5207,U+5217,U+521D,U+5224-5225,U+5229,U+5236-5237,U+523B,U+5247,U+524A,U+524D,U+5270,U+5272,U+529B,U+52A0,U+52A9,U+52B9,U+52D5,U+52D9,U+5316-5317,U+533A,U+5341,U+534A,U+5353-5354,U+5357-5358,U+5370,U+5374,U+539A,U+539F,U+53BB,U+53C2,U+53CA,U+53CD-53CE,U+53D6-53D7,U+53E3-53E4,U+53EF-53F0,U+53F3,U+53F7,U+5404,U+5408,U+540A,U+540C-540D,U+5411,U+5426,U+542B,U+5438,U+544A,U+5468,U+5473,U+547C,U+548C,U+54C1,U+54E1,U+5546,U+554F,U+5584,U+55B6,U+5668,U+56DB,U+56DE,U+56E0,U+56F0,U+56F2-56F3,U+56FA,U+56FD,U+5727-5728,U+5730,U+5747,U+5782,U+578B,U+57CB,U+57DF,U+57FA,U+5831,U+5834,U+5857,U+585E,U+5883,U+5897,U+58C1,U+58EB,U+58F0,U+5909,U+5916,U+591A,U+591C,U+5927,U+5929-592A,U+592E,U+5931,U+5965,U+59A8,U+59CB,U+5A92,U+5B50,U+5B57-5B58,U+5B66,U+5B85,U+5B89,U+5B8C,U+5B98,U+5B9A,U+5B9F,U+5BA2,U+5BB3,U+5BB6,U+5BB9,U+5BC6,U+5BDF,U+5BF8,U+5BFE,U+5C02,U+5C0E-5C0F,U+5C11,U+5C3A,U+5C3E,U+5C4A-5C4B,U+5C5E,U+5C64-5C65,U+5DE1,U+5DE5-5DE6,U+5DEE,U+5DF1,U+5DFB,U+5DFE,U+5E02-5E03,U+5E0C,U+5E2D,U+5E2F-5E30,U+5E38,U+5E45,U+5E55,U+5E72-5E74,U+5E78,U+5E7E,U+5E81,U+5E83,U+5E8A,U+5E8F,U+5E95,U+5EA6-5EA7,U+5EAB,U+5EAD,U+5EF6,U+5F0F,U+5F15,U+5F27,U+5F35,U+5F37,U+5F53,U+5F62,U+5F71,U+5F79,U+5F84-5F85,U+5F8C,U+5F93,U+5F97,U+5FA1,U+5FA9,U+5FB4,U+5FC3,U+5FC5,U+5FDC,U+5FF5,U+6025,U+6027,U+6050,U+60C5,U+60F3,U+610F,U+614B,U+6163,U+6210,U+6226,U+6238,U+623B,U+6240,U+6249,U+624B,U+6271,U+627F-6280,U+628A,U+6295,U+629C,U+629E,U+62BC-62BD,U+62C5,U+62D2,U+62DD,U+62E0-62E1,U+62EC,U+6301,U+6307,U+632F,U+633F,U+6349,U+6355,U+6398,U+639B,U+63A1-63A2,U+63A5,U+63A8,U+63B2,U+63CF-63D0,U+63DB,U+63E1,U+63F4,U+63FA,U+640D,U+643A,U+64AE,U+64CD,U+652F,U+6539,U+653E,U+6557,U+6559,U+6570,U+6574,U+6587,U+6599,U+65AD,U+65B0,U+65B9,U+65BD,U+65CB,U+65E2,U+65E5,U+65E7-65E9,U+65EC,U+6607,U+660E,U+6620,U+6642,U+666F,U+66DC,U+66F2,U+66F4,U+66F8,U+66FF-6700,U+6708-6709,U+670D,U+671B,U+671F,U+6728,U+672A-672C,U+6750,U+6761,U+6765,U+6771,U+677F,U+6790,U+679A,U+679C,U+67F1,U+67FB,U+6839,U+6848,U+68B0,U+68D2,U+68DA,U+691C,U+696D,U+697D,U+6982,U+69CB,U+69D8,U+6A19,U+6A21,U+6A2A,U+6A5F,U+6B20-6B21,U+6B62-6B63,U+6B69,U+6B74,U+6B8B,U+6BB5,U+6BCE,U+6BD4,U+6C17,U+6C34,U+6C42,U+6C7A,U+6CBF,U+6CC1,U+6CD5,U+6CE2,U+6CE8,U+6D3B,U+6D41,U+6D88,U+6DE1,U+6DF1,U+6DF7,U+6DFB,U+6E08-6E09,U+6E1B,U+6E21,U+6E2C,U+6E96,U+6E9D,U+6EDE,U+6F0F,U+6FC0,U+70B9,U+7121,U+7167,U+719F,U+7206,U+7247-7248,U+7269,U+7279,U+72B6,U+72EC-72ED,U+732E,U+7387,U+73FE,U+7406,U+74B0,U+751F,U+7523,U+7528,U+7531,U+7533,U+753B,U+754C,U+7565,U+756A,U+7570,U+75C7,U+767A-767B,U+767D-767E,U+7684,U+76BF,U+76E3-76E4,U+76EE,U+76F4,U+76F8,U+771F,U+7740,U+77AC,U+77E2,U+77E5,U+77E9,U+77ED,U+7814,U+7834,U+78BA,U+793A,U+793E,U+7968,U+79C1,U+79D2,U+79FB,U+7A0B,U+7A2E,U+7A3C,U+7A3F,U+7A4D,U+7A74,U+7A76,U+7A7A,U+7A81,U+7ACB,U+7AEF,U+7AF6,U+7B46,U+7B49,U+7B52,U+7B54,U+7B56,U+7B87,U+7B97,U+7BA1,U+7BC0,U+7BC4,U+7BC9,U+7C97,U+7CBE,U+7CFB,U+7D04,U+7D0D,U+7D14,U+7D19,U+7D20,U+7D22,U+7D2F-7D30,U+7D39,U+7D42,U+7D44,U+7D4C,U+7D50,U+7D5E,U+7D61,U+7D71,U+7D76,U+7D99-7D9A,U+7DAD,U+7DBF,U+7DD1-7DD2,U+7DDA,U+7DE0,U+7DE8,U+7DF4,U+7E01,U+7E26,U+7E2E,U+7E70,U+7F6E,U+7FA4,U+7FA9,U+7FD2,U+7FFB,U+8003,U+8005,U+80A2,U+80CC,U+80F4,U+80FD,U+811A,U+8155,U+81EA,U+81F3-81F4,U+8272,U+8349,U+8352,U+8377,U+843D,U+84C4,U+8535,U+884C,U+8853,U+885D,U+8861,U+8863,U+8868,U+8896,U+88C5,U+88CF,U+88DC,U+88FD-88FE,U+8907,U+897F,U+8981,U+8986,U+898B,U+898F,U+8996,U+899A,U+89A7,U+89B3,U+89D2,U+89E3,U+89E6,U+8A00,U+8A02,U+8A08,U+8A0E,U+8A18,U+8A2A,U+8A2D,U+8A31,U+8A33,U+8A3C,U+8A55,U+8A66,U+8A71-8A73,U+8A8D,U+8A9E,U+8AA4,U+8AAC-8AAD,U+8AB2,U+8ABF,U+8AC7,U+8ACB,U+8AD6,U+8B58,U+8B66,U+8C61,U+8CA0,U+8CA2,U+8CAB,U+8CBB-8CBC,U+8CC7,U+8CEA,U+8CFC,U+8D64,U+8D77,U+8D85,U+8D8A,U+8DB3,U+8DDD,U+8DE1,U+8DEF,U+8DF3,U+8EAB,U+8EE2,U+8EF8,U+8EFD,U+8F03,U+8F09,U+8F2A,U+8F9E,U+8FBA,U+8FBC,U+8FD1,U+8FD4,U+8FFD,U+9001,U+9003,U+900F,U+9014,U+901A,U+901F-9020,U+9023,U+9031-9032,U+9045,U+904B,U+904E,U+9054-9055,U+9060,U+9069,U+9078,U+90CA,U+90E8,U+90ED,U+90FD,U+914D,U+916C,U+91C8,U+91CD-91CF,U+91D1,U+91DD,U+925B,U+92F8,U+9310,U+932F,U+9332,U+9396,U+9577,U+9580,U+9589,U+958B,U+9593,U+95A2,U+95B2,U+9632,U+964D,U+9650,U+9662,U+9664,U+968E,U+969B-969C,U+96A0,U+96A3,U+96C6,U+96D1,U+96E2-96E3,U+96FB,U+9727,U+9732,U+9752,U+9759,U+975E,U+9762,U+97D3,U+97F3,U+97FF,U+9805-9806,U+9818,U+983C,U+984C,U+9854,U+9858,U+985E,U+9867,U+98DF,U+99C4,U+9A13,U+9AD8,U+9EC4,U+9ED2}@font-face{font-family:Portfolio Chinese;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/site-cjk-zh-CN.woff2) format("woff2");unicode-range:U+4E00,U+4E03,U+4E07,U+4E09-4E0B,U+4E0D-4E0E,U+4E13-4E14,U+4E1A,U+4E1C-4E1D,U+4E22,U+4E24,U+4E2A,U+4E2D,U+4E34,U+4E3A-4E3B,U+4E48-4E49,U+4E4B,U+4E4E,U+4E5D,U+4E5F-4E60,U+4E70,U+4E86,U+4E8B-4E8C,U+4E8E,U+4E92,U+4E94,U+4E9B,U+4EA4,U+4EA7,U+4EAB,U+4EAE,U+4EB2,U+4EBA,U+4EC0,U+4EC5,U+4ECA-4ECB,U+4ECD-4ECE,U+4ED4,U+4ED6,U+4ED8,U+4EE3-4EE5,U+4EEA,U+4EEC,U+4EF6-4EF7,U+4EFB,U+4EFD,U+4EFF,U+4F01,U+4F18-4F1A,U+4F20,U+4F30,U+4F34,U+4F38,U+4F3C,U+4F46,U+4F4D-4F4F,U+4F53,U+4F55,U+4F59,U+4F5C,U+4F69,U+4F73,U+4F7F,U+4F8B,U+4F9B,U+4F9D,U+4FA7,U+4FBF,U+4FDD,U+4FE1,U+4FEE,U+500D,U+5012,U+5019,U+501F,U+503C,U+504F,U+505A,U+505C,U+5076,U+507F,U+50A8,U+50CF,U+5141,U+5143,U+5145,U+5148-5149,U+514B,U+514D,U+5165,U+5168,U+516C-516D,U+5171,U+5173-5174,U+5176-5177,U+5185,U+518C-518D,U+5199,U+51B0,U+51B2-51B3,U+51B5,U+51BB,U+51C6,U+51CF,U+51E0,U+51ED,U+51F8-51FB,U+51FD,U+5200,U+5206-5207,U+5212,U+5217,U+5219,U+521B,U+521D,U+5220,U+5224,U+5229,U+522B,U+5230,U+5236,U+524A,U+524D,U+5256,U+5267,U+5269-526A,U+5272,U+529B,U+529F-52A1,U+52A8-52A9,U+52B1,U+52BF,U+52FF,U+5305,U+5316-5317,U+5339-533A,U+5341,U+5347,U+534A,U+534F,U+5355,U+5357,U+5360-5361,U+5370,U+5373,U+5377-5378,U+5382,U+5386,U+538B,U+539A,U+539F,U+53A8,U+53BB,U+53C2,U+53C8-53CA,U+53CD,U+53D1,U+53D6-53D8,U+53E0,U+53E3,U+53E6,U+53EA,U+53EC,U+53EF-53F0,U+53F2-53F3,U+53F7-53F8,U+5404,U+5408,U+540A,U+540C-540E,U+5411,U+5417,U+5426,U+542B,U+542F,U+5438,U+5448,U+544A,U+5458,U+5468,U+5473,U+547D,U+548C,U+54A8,U+54C1,U+54CD,U+54EA,U+5546,U+5668,U+56DB,U+56DE,U+56E0,U+56E2,U+56F4,U+56FA,U+56FD-56FE,U+5706,U+5728,U+5730,U+573A,U+5740,U+5747,U+5750,U+5757,U+576F,U+5782,U+578B,U+57CB,U+57CE,U+57DF,U+57FA,U+5806,U+5835,U+585E,U+586B,U+5883,U+5899,U+589E,U+58C1,U+58F0,U+58F3,U+5904,U+5907,U+590D,U+5916,U+591A,U+591F,U+5927,U+5929-592A,U+592E,U+5931,U+5934,U+5939,U+5956-5957,U+597D,U+5982,U+59CB,U+59FF,U+5A92,U+5B50,U+5B54,U+5B57-5B58,U+5B66,U+5B6A,U+5B83,U+5B89,U+5B8C,U+5B8F,U+5B98,U+5B9A,U+5B9E,U+5BA1-5BA2,U+5BA4,U+5BB6,U+5BB9,U+5BBD,U+5BC6,U+5BD3,U+5BDF,U+5BF8-5BF9,U+5BFC,U+5C01,U+5C04,U+5C06,U+5C0F,U+5C11,U+5C16,U+5C1A,U+5C1D,U+5C31,U+5C3A,U+5C3D-5C3E,U+5C40,U+5C42,U+5C45,U+5C49,U+5C4B,U+5C4F,U+5C51,U+5C55,U+5C5E,U+5C97,U+5CF0,U+5D4C,U+5DE5-5DE6,U+5DEE,U+5DF1-5DF2,U+5E02-5E03,U+5E08,U+5E0C,U+5E16,U+5E26-5E27,U+5E2E,U+5E38,U+5E55,U+5E72-5E74,U+5E76,U+5E8A,U+5E8F,U+5E93-5E95,U+5E9C,U+5EA6,U+5ED3,U+5EF6,U+5EFA,U+5F00,U+5F02,U+5F0F,U+5F15,U+5F20,U+5F27,U+5F31,U+5F3A,U+5F52-5F53,U+5F55,U+5F62,U+5F71,U+5F7C,U+5F80-5F81,U+5F84-5F85,U+5F88,U+5F97,U+5FAA,U+5FC3,U+5FC5,U+5FD7,U+5FEB,U+5FF5,U+6001,U+601D,U+6025,U+6027,U+603B,U+6052,U+6062,U+6064,U+606F,U+6089,U+60A8,U+60AC,U+60C5,U+60EF,U+60F3,U+610F,U+611F,U+6162,U+6210-6211,U+6216,U+6218,U+622A,U+6233-6234,U+6237,U+623F-6240,U+624B,U+624D,U+6251,U+6253,U+6263,U+6267,U+6269,U+626E,U+6279,U+627E,U+6280,U+628A,U+6295-6296,U+62A4-62A5,U+62AC,U+62BD,U+62C5-62C6,U+62C9,U+62D0,U+62D2-62D3,U+62D6,U+62DB,U+62DF,U+62E9,U+62EC,U+62FE,U+6301-6302,U+6307,U+6309,U+6311,U+6321,U+6324,U+6349,U+6355,U+635F,U+6362,U+636E,U+6377,U+6388-6389,U+6392,U+63A2,U+63A5,U+63A7-63A9,U+63CF-63D0,U+63D2,U+6401,U+641C,U+642D,U+643A,U+6446-6447,U+6458,U+6491,U+649E,U+64AD,U+64B0,U+64CD-64CE,U+652F,U+6536,U+6539,U+653E-653F,U+6545,U+6548,U+654F,U+6559,U+6563,U+6570,U+6572,U+6574,U+6587,U+6597,U+6599,U+659C,U+65AD,U+65B0,U+65B9,U+65BD,U+65C1,U+65CB,U+65E0,U+65E2,U+65E5,U+65E7-65E9,U+65F6,U+660E,U+6613,U+661F-6620,U+662F,U+663E,U+665A,U+666E-666F,U+667A,U+6682,U+66F2,U+66F4,U+66FE-6700,U+6708-6709,U+670D,U+671B,U+671F,U+6728,U+672A-672C,U+672F,U+673A,U+6742-6743,U+6746,U+6750,U+675F,U+6761,U+6765,U+676F,U+677E-677F,U+6784,U+6790,U+679C,U+67B6,U+67D0,U+67D3,U+67DC,U+67E5,U+67F1,U+6807,U+680F,U+6811,U+6821,U+6837-6839,U+683C,U+6846,U+6848,U+684C,U+6863,U+68B0,U+68C0,U+6982,U+69FD,U+6A21,U+6A2A,U+6A59,U+6B21-6B22,U+6B3E,U+6B62-6B65,U+6B8B,U+6BB5,U+6BCF,U+6BD4,U+6BDB,U+6BEB,U+6C34,U+6C42,U+6C47,U+6C89,U+6CA1,U+6CBF,U+6CD5,U+6CE2,U+6CE8,U+6D01,U+6D1E,U+6D3B,U+6D41,U+6D45,U+6D4B,U+6D4F,U+6D6A,U+6D82,U+6D88-6D89,U+6DB5,U+6DC6,U+6DE1,U+6DF1,U+6DF7,U+6DFB,U+6E05,U+6E32,U+6E38,U+6E90,U+6ED1,U+6EDA,U+6EE1,U+6F0F,U+6F14,U+6F2B,U+7070,U+70B8-70B9,U+70ED,U+7136,U+7167,U+7194,U+719F,U+7206,U+722C,U+7247-7248,U+7269,U+7275,U+7279,U+72B6,U+72EC,U+731C,U+732E,U+7387,U+73A9,U+73AF-73B0,U+7406,U+751F,U+7528,U+7531,U+7533,U+7535,U+753B,U+754C,U+7559,U+7565,U+767B,U+767D-767E,U+7684,U+76D1-76D2,U+76D6,U+76D8,U+76EE,U+76F2,U+76F4,U+76F8,U+7701,U+770B,U+771F,U+7740,U+7784,U+77AC,U+77E5,U+77E9,U+77ED,U+77F3,U+7801,U+7814,U+7834,U+7840,U+786C,U+786E,U+78B0,U+793A,U+795E,U+7968,U+79BB,U+79C1,U+79CD,U+79D1-79D2,U+79EF-79F0,U+79FB,U+7A0B,U+7A33,U+7A76,U+7A7A,U+7A7F,U+7A81,U+7A84,U+7A97,U+7ACB,U+7AD9,U+7AE0,U+7AEF,U+7B14,U+7B26,U+7B2C,U+7B49,U+7B54,U+7B56,U+7B7E,U+7B80,U+7B97,U+7BA1,U+7BAD,U+7BB1,U+7C3F,U+7C73,U+7C7B,U+7C97,U+7CBE,U+7CCA,U+7CD9,U+7CFB,U+7D20,U+7D22,U+7D27,U+7D2F,U+7E41,U+7EA0,U+7EA2,U+7EA6-7EA7,U+7EB3,U+7EB8-7EB9,U+7EBF,U+7EC3-7EC4,U+7EC6-7EC8,U+7ECD,U+7ECF,U+7ED3,U+7ED5,U+7ED8-7ED9,U+7EDC-7EDD,U+7EDF,U+7EE7,U+7EED,U+7EF4,U+7EFC,U+7F13,U+7F16,U+7F18,U+7F20,U+7F29,U+7F3A,U+7F51,U+7F69,U+7F6E,U+7F72,U+7FFB,U+8003,U+8005,U+800C,U+8017,U+804C,U+8054,U+8058,U+805A,U+808B,U+8096,U+80A9,U+80CC,U+80FD,U+8111,U+811A,U+8138,U+8154,U+817F,U+819C,U+81C2,U+81EA,U+81F3-81F4,U+822A,U+8272,U+827A,U+8282,U+8303,U+8349,U+8350,U+8377,U+83B7,U+83DC,U+8425,U+843D,U+8499,U+84DD,U+85CF,U+864E,U+8651,U+865A,U+866B,U+878D,U+87BA,U+884C,U+8854,U+8861,U+8863,U+8865,U+8868,U+8896,U+88AB,U+88C1-88C2,U+88C5,U+88D9,U+88E4,U+88F8,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+8A9E,U+8B66,U+8BA1-8BA2,U+8BA4,U+8BA9,U+8BAD-8BAE,U+8BB0,U+8BB8,U+8BBA,U+8BBE-8BBF,U+8BC1,U+8BC4,U+8BC6,U+8BD5,U+8BDD,U+8BE2,U+8BE5-8BE6,U+8BED,U+8BEF,U+8BF4,U+8BF7-8BF8,U+8BFB,U+8C03,U+8C61,U+8D1F,U+8D21,U+8D23,U+8D25-8D28,U+8D2D,U+8D34,U+8D39,U+8D44,U+8D5B,U+8D70,U+8D77,U+8D85,U+8D8B,U+8DA3,U+8DB3,U+8DDD,U+8DDF,U+8DEF,U+8DF3,U+8E22,U+8E2A,U+8EAB,U+8EAF,U+8F66,U+8F68,U+8F6C,U+8F6E-8F6F,U+8F74,U+8F7B,U+8F7D,U+8F83,U+8F91,U+8F93,U+8FA8,U+8FB9,U+8FBE,U+8FC1,U+8FC7,U+8FCE,U+8FD0-8FD1,U+8FD4,U+8FD8-8FD9,U+8FDB,U+8FDE-8FDF,U+8FED,U+8FF0,U+8FFD,U+9000-9002,U+9009,U+900F-9010,U+9012,U+9014,U+901A,U+901F-9020,U+9047,U+9053,U+9057,U+906E,U+9075,U+90AE,U+90BB,U+90E8,U+90FD,U+914D,U+91C7,U+91CA,U+91CC-91CF,U+91D1,U+9488-9489,U+949F,U+94AE,U+94B3,U+94BB,U+94C5,U+94E3,U+94F0,U+94FE,U+9500,U+9519,U+9525,U+952E-952F,U+957F,U+95E8,U+95ED-95EE,U+95F4,U+9605,U+9608,U+961F,U+9632-9636,U+963B,U+9644-9645,U+964D,U+9650,U+9662,U+9664,U+968F-9690,U+9694,U+9699,U+969C,U+96BE,U+96C6-96C7,U+96F6,U+96FE,U+9700,U+9732,U+9759,U+975E,U+9760,U+9762,U+97E9,U+97F3,U+9875-9876,U+9879-987B,U+9884,U+9886,U+9891,U+9898,U+989C,U+98D9,U+9910,U+9970,U+9988,U+9996,U+9A6C,U+9A8C,U+9AA4,U+9AA8,U+9AD8,U+9EC4,U+9ED1,U+9ED8,U+9F20,U+9F50}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/jetbrains-mono-latin.woff2) format("woff2")}:root{--paper: #f4f3ec;--sheet: #f9f8f3;--white: #fff;--ink: #1e2522;--muted: #5b635f;--line: #d6d9cf;--line-strong: #b4b9ae;--blue: #2f5f9e;--blue-soft: #e4ebf4;--accent: #a75534;--gold: #7a5b1c;--gold-soft: #f1e8cf;--surface: #ebeae2;--grid-minor: rgba(30, 37, 34, .045);--grid-major: rgba(30, 37, 34, .085);--cjk-font: "Portfolio CJK";--mono: "JetBrains Mono", "Portfolio Sans", var(--cjk-font), "Portfolio CJK", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans: "Portfolio Sans", var(--cjk-font), "Portfolio CJK", -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--fs-1: 13px;--fs-2: 15px;--fs-3: 17px;--fs-4: 20px;--fs-5: 26px;--fs-6: 36px;--fs-7: 52px;--header-h: 64px;--shadow: 0 1px 2px rgba(30, 37, 34, .05), 0 12px 28px -18px rgba(30, 37, 34, .3)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:var(--fs-3);line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--blue);outline-offset:4px}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4,p{word-break:keep-all}p{overflow-wrap:anywhere}img{max-width:100%;height:auto}::selection{background:var(--blue-soft);color:var(--ink)}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--ink);color:var(--white);padding:12px 24px}.skip-link:focus{top:10px}main:focus{outline:none}.site-header-bar{position:sticky;top:0;z-index:50;background:rgba(244,243,236,.9);-webkit-backdrop-filter:saturate(1.3) blur(10px);backdrop-filter:saturate(1.3) blur(10px);border-bottom:1px solid var(--ink)}.site-header{height:var(--header-h);max-width:1280px;padding:0 40px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-mark{font:700 30px/1 Georgia,serif;letter-spacing:-3px}.brand-mark span{color:var(--accent)}.brand-name{font-size:var(--fs-2);font-weight:700;white-space:nowrap}.brand-name span{margin-left:8px;font:400 var(--fs-1)/1 var(--mono);color:var(--muted)}.site-header nav{display:flex;align-items:center;gap:28px;font-size:var(--fs-2);font-weight:600}.site-header nav a{position:relative;display:flex;align-items:center;min-height:44px;color:var(--muted);white-space:nowrap}.site-header nav a:hover,.site-header nav a.active{color:var(--ink)}.site-header nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:6px;height:2px;background:var(--blue)}.site-footer{max-width:1280px;margin:0 auto;padding:40px 40px 48px}.site-footer dl{display:grid;grid-template-columns:1.2fr minmax(max-content,1.6fr) minmax(max-content,1.6fr) .8fr;margin:0;border:1px solid var(--ink)}.site-footer dl div{padding:10px 14px 12px;border-left:1px solid var(--line);min-width:0}.site-footer dl div:first-child{border-left:0}.site-footer dt{font-size:var(--fs-1);color:var(--muted)}.site-footer dd{margin:2px 0 0;font:500 var(--fs-1)/1.6 var(--mono);overflow-wrap:anywhere}.site-footer dd a:hover{color:var(--blue)}.footer-link{display:inline-flex;align-items:center;gap:7px}.footer-link app-icon{width:15px;height:15px}.footer-notes{margin-top:16px;font-size:var(--fs-2);color:var(--blue)}.footer-notes button{border:0;padding:0;background:none;color:inherit;font:inherit;cursor:pointer}.footer-notes a,.footer-notes button{text-decoration:underline;text-underline-offset:4px}.page-shell{max-width:1200px;margin:auto;padding:0 40px}.eyebrow{font:500 var(--fs-1)/1.6 var(--mono);letter-spacing:.2px;color:var(--muted)}.section-no{font:500 var(--fs-1)/1 var(--mono);color:var(--blue);flex:none;white-space:nowrap}.accent{color:var(--accent)}.desktop-break{display:inline}.button{display:inline-flex;gap:24px;align-items:center;justify-content:center;padding:12px 20px;font-size:var(--fs-2);font-weight:600;border:1px solid transparent}.button.primary{background:var(--ink);color:var(--white)}.button.primary:hover{background:var(--blue)}.text-link{display:inline-flex;gap:10px;align-items:center;padding:2px 0;border-bottom:1px solid currentColor;font-size:var(--fs-2);font-weight:600;color:var(--ink)}.text-link:hover{color:var(--blue)}.tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:18px}.tags span{font:var(--fs-1)/1.6 var(--mono);color:var(--muted);border:1px solid var(--line);padding:1px 7px;background:var(--sheet)}.figure-kind{display:inline-block;font:500 var(--fs-1)/1 var(--mono);color:var(--ink);border:1px solid var(--ink);background:var(--white);padding:4px 7px}.figure-kind.research{color:var(--blue);border-color:var(--blue)}.row-arrow{font-size:var(--fs-4);line-height:1}app-icon.row-arrow{width:20px;height:20px;color:var(--muted);transition:transform .2s,color .2s}.motion-toggle{position:absolute;top:22px;right:22px;display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-1);padding:4px 11px;border:1px solid var(--line-strong);background:rgba(255,255,255,.94);color:var(--ink)}.motion-toggle:hover{border-color:var(--ink)}.motion-toggle app-icon{width:12px;height:12px}@media (prefers-reduced-motion: reduce){.motion-toggle{display:none}}.index-layout{max-width:1280px;margin:0 auto;padding:56px 40px 24px;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:64px}.index-profile{position:sticky;top:calc(var(--header-h) + 48px);align-self:start}.profile-name{font-size:var(--fs-2);color:var(--muted);line-height:1.6}.profile-name strong{font-size:var(--fs-4);color:var(--ink);margin-right:4px}.profile-role{display:block;font:var(--fs-1)/1.6 var(--mono);color:var(--blue)}.index-profile h1{margin:28px 0 20px;font-size:var(--fs-6);font-weight:750;line-height:1.35;letter-spacing:-1.4px}.profile-text{font-size:var(--fs-2);line-height:1.8;color:var(--muted);max-width:360px}.index-nav{display:grid;gap:2px;margin:40px 0 36px}.index-nav a{display:flex;align-items:center;gap:12px;min-height:36px;font-size:var(--fs-2);font-weight:600;color:var(--muted)}.index-nav b{font:500 var(--fs-1)/1 var(--mono);color:var(--blue);width:20px}.index-line{display:block;width:28px;height:1px;background:var(--line-strong);transition:width .2s,background-color .2s}.index-nav a:hover,.index-nav a.active{color:var(--ink)}.index-nav a:hover .index-line,.index-nav a.active .index-line{width:56px;background:var(--ink)}.profile-links{list-style:none;margin:0;padding:18px 0 0;border-top:1px solid var(--line);display:flex;gap:24px}.profile-links a{display:inline-flex;align-items:center;gap:8px;min-height:36px;font-size:var(--fs-2);font-weight:600}.profile-links a:hover{color:var(--blue)}.profile-links app-icon{width:18px;height:18px}.index-main{min-width:0}.index-section{padding:0 0 72px;scroll-margin-top:calc(var(--header-h) + 24px)}.section-title{display:flex;align-items:baseline;gap:14px;padding-bottom:14px;margin-bottom:4px;border-bottom:1px solid var(--ink)}.section-title h2{font-size:var(--fs-5);letter-spacing:-.8px;line-height:1.3}.section-title .text-link{margin-left:auto;font-size:var(--fs-1)}.section-lead{margin:16px 0 6px;font-size:var(--fs-2);line-height:1.8;color:var(--muted)}.index-rows{list-style:none;margin:0;padding:0}.index-rows li{border-bottom:1px solid var(--line)}.index-row{display:grid;grid-template-columns:168px minmax(0,1fr) auto;gap:22px;align-items:center;padding:20px 12px;margin:0 -12px;transition:background-color .2s}.index-row:hover{background:var(--white)}.index-row:hover .row-title{color:var(--blue)}.index-row:hover .row-arrow{color:var(--blue);transform:translate(4px)}.row-thumb{position:relative;display:block;border:1px solid var(--line);background:var(--white)}.row-thumb img{display:block;width:100%;aspect-ratio:560/390;object-fit:contain}.row-thumb .figure-kind{position:absolute;left:6px;bottom:6px;padding:3px 5px}.row-body{display:grid;gap:4px;min-width:0}.row-meta{font:var(--fs-1)/1.5 var(--mono);color:var(--muted)}.row-title{font-size:var(--fs-4);font-weight:700;letter-spacing:-.5px;line-height:1.45;word-break:keep-all;transition:color .2s}.row-result{font-size:var(--fs-2);line-height:1.65;color:var(--muted);word-break:keep-all}.row-stat{display:grid;justify-items:end;text-align:right;max-width:220px}.case-row{grid-template-columns:168px minmax(0,1fr) auto auto}.case-row .row-stat{max-width:170px}.row-stat b{font-size:var(--fs-5);font-weight:750;letter-spacing:-.8px;line-height:1.2;color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap}.row-stat span{font-size:var(--fs-1);line-height:1.5;color:var(--muted);word-break:keep-all}.research-row .row-title{font-size:var(--fs-3)}.row-note{display:flex;align-items:baseline;gap:8px;margin-top:4px;font-size:var(--fs-1);line-height:1.6;word-break:keep-all}.row-note b{flex-shrink:0;font-weight:600;padding:0 6px;border:1px solid currentColor;color:var(--accent)}.product-card{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:18px;align-items:center;margin-top:14px;padding:12px 18px 12px 12px;border:1px solid var(--line-strong);background:var(--sheet);transition:border-color .2s,background-color .2s}.product-card:hover{border-color:var(--ink);background:var(--white)}.product-card:hover .row-arrow{color:var(--blue);transform:translate(4px)}.product-card img{display:block;width:100%;aspect-ratio:560/390;object-fit:contain;border:1px solid var(--line);background:var(--white)}.product-kicker{font:var(--fs-1)/1.5 var(--mono);color:var(--accent)}.product-card strong{display:block;margin:2px 0;font-size:var(--fs-3);font-weight:700;line-height:1.45}.product-line{margin-bottom:8px;font-size:var(--fs-1);line-height:1.6;color:var(--ink)}.flow-chips{display:flex;flex-wrap:wrap;gap:2px 6px;list-style:none;margin:0;padding:0;font-size:var(--fs-1);color:var(--muted)}.flow-chips li+li:before{content:"\2192";margin-right:6px;color:var(--line-strong)}.about-block{display:grid;grid-template-columns:100px minmax(0,1fr);gap:28px;padding-top:24px}.about-block img{width:100px;height:100px;object-fit:cover;filter:grayscale(1) contrast(1.05);border:1px solid var(--line)}.about-statement{font-size:var(--fs-4);font-weight:700;line-height:1.55;letter-spacing:-.5px;margin-bottom:12px}.about-block p:not(.about-statement){font-size:var(--fs-2);line-height:1.85;color:var(--muted);margin-bottom:20px}.skill-list{margin:0 0 22px;border-top:1px solid var(--line)}.skill-list>div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line)}.skill-list dt{font:600 var(--fs-1)/1.5 var(--mono);color:var(--blue)}.skill-list dd{margin:0;display:flex;flex-wrap:wrap;gap:6px}.skill-list dd span{font:var(--fs-1)/1.6 var(--mono);padding:1px 7px;border:1px solid var(--line);background:var(--sheet)}.interior-page{padding-top:56px;padding-bottom:72px;min-height:75vh}.page-intro{margin-bottom:40px}.page-intro h1{font-size:var(--fs-6);font-weight:750;line-height:1.35;letter-spacing:-1.4px;margin:12px 0 18px;max-width:860px}.page-intro>p:not(.eyebrow){font-size:var(--fs-3);line-height:1.85;color:var(--muted);max-width:820px}.page-intro .eyebrow+h1{margin-top:10px}.portfolio-jump{margin-bottom:20px}.project-row{display:grid;grid-template-columns:300px 1fr;gap:40px;padding:40px 0;border-top:1px solid var(--ink)}.project-row+.project-row{border-top-color:var(--line)}.large-index{font:500 var(--fs-6)/1.2 var(--mono);color:#7d847a}.project-row-meta .eyebrow{margin:12px 0 4px;max-width:260px}.project-row-meta .row-period{display:block;font:var(--fs-1)/1.7 var(--mono);color:var(--muted)}.row-figure{display:block;margin-top:18px;border:1px solid var(--line);background:var(--white);transition:border-color .2s}.row-figure:hover{border-color:var(--ink)}.row-figure img{display:block;width:100%;height:auto;aspect-ratio:560/390;object-fit:contain}.project-row-content h2{font-size:var(--fs-5);letter-spacing:-.8px;line-height:1.45}.project-row-content h2 a:hover{color:var(--blue)}.project-row-content h2 span{font-size:var(--fs-4);color:var(--muted);margin-left:6px}.row-subtitle{font-size:var(--fs-2);color:var(--muted);margin-top:8px}.project-summary{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin:24px 0}.project-summary h3{font-size:var(--fs-1);margin-bottom:8px;color:var(--blue)}.project-summary p{font-size:var(--fs-2);color:var(--muted);line-height:1.85}.project-summary .row-headline{font-weight:650;color:var(--ink)}.end-note{font-size:var(--fs-2);padding:24px 0;color:var(--muted)}.end-note a{text-decoration:underline;text-underline-offset:4px}.back-link{display:inline-flex;align-items:center;gap:6px;min-height:36px;font-size:var(--fs-1);color:var(--muted);margin-bottom:20px}.back-link:hover{color:var(--blue)}.detail-intro h1{font-size:var(--fs-6)}.result-headline{font-size:var(--fs-4);font-weight:700;letter-spacing:-.5px;line-height:1.45;margin:0 0 18px;word-break:keep-all}.case-figure,.result-figure{position:relative;margin:0 0 22px;border:1px solid var(--ink);background-color:var(--sheet);background-image:linear-gradient(var(--grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),linear-gradient(var(--grid-minor) 1px,transparent 1px),linear-gradient(90deg,var(--grid-minor) 1px,transparent 1px);background-size:60px 60px,60px 60px,12px 12px,12px 12px;padding:20px 20px 14px}.case-figure img{display:block;width:100%;max-width:760px;height:auto;margin:0 auto;aspect-ratio:560/390;object-fit:contain}.case-figure figcaption,.pair-gallery figcaption{display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:760px;margin:14px auto 0;font-size:var(--fs-1);line-height:1.7;color:var(--muted)}.case-stats{margin:0 0 28px}.mini-stats{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px}.mini-stats li{font-size:var(--fs-1);line-height:1.6;color:var(--muted);word-break:keep-all}.mini-stats b{font:700 var(--fs-2)/1.4 var(--sans);color:var(--accent);font-variant-numeric:tabular-nums;margin-right:4px}.case-story{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.case-story li{position:relative;border:1px solid var(--line);background:var(--sheet);padding:10px 12px 16px}.case-story li+li:before{content:"\2192";position:absolute;left:-13px;top:38%;color:var(--line-strong);font-size:var(--fs-1)}.story-figure{position:relative}.zoom-open{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}.zoom-open:hover img{border-color:var(--ink)}.story-figure .motion-toggle{top:8px;right:8px;padding:2px 9px}.case-story img{display:block;width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--white);border:1px solid var(--line);margin-bottom:10px}.story-meta{display:flex;align-items:center;gap:8px}.story-meta b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--ink);background:var(--white);font:600 var(--fs-1)/1 var(--mono)}.case-story h3{font-size:var(--fs-2);font-weight:700;margin:10px 0 6px}.case-story p{font-size:var(--fs-1);line-height:1.7;color:var(--muted)}.case-facts{margin:24px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:24px}.case-facts div{border-top:1px solid var(--ink);padding-top:10px}.case-facts dt{font-size:var(--fs-1);font-weight:650;color:var(--blue);margin-bottom:6px}.case-facts dd{margin:0;font-size:var(--fs-2);line-height:1.8;word-break:keep-all}.case-facts .fact-wide{grid-column:1/-1}.role-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}.role-list li{position:relative;padding-left:24px;line-height:1.6}.role-list li:before{content:"\2713";position:absolute;left:0;top:.25em;width:15px;height:15px;display:grid;place-items:center;font:700 11px/1 var(--mono);color:var(--white);background:var(--blue)}.role-note{margin-top:8px;font-size:var(--fs-1);line-height:1.6;color:var(--muted)}.zoom-dialog{width:min(1180px,100vw - 32px);max-height:calc(100vh - 32px);padding:16px;border:1px solid var(--ink);background:var(--sheet);color:var(--ink)}.zoom-dialog::-webkit-backdrop{background:rgba(30,37,34,.72)}.zoom-dialog::backdrop{background:rgba(30,37,34,.72)}.zoom-dialog img{display:block;margin:0 auto;max-width:100%;max-height:calc(100vh - 140px);width:auto;height:auto;background:var(--white);border:1px solid var(--line)}.zoom-dialog p{margin:10px 84px 0 0;font-size:var(--fs-1);line-height:1.6;color:var(--muted)}.zoom-close{position:absolute;right:16px;bottom:12px;display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-1);padding:4px 11px;border:1px solid var(--line-strong);background:var(--white);color:var(--ink)}.zoom-close:hover{border-color:var(--ink)}.case-details{margin:30px 0 44px}.pair-gallery{margin:26px 0 8px;border:1px solid var(--line);background:var(--sheet);padding:20px}.pair-gallery figcaption{max-width:none}.pair-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.pair{display:grid;gap:8px}.pair>div{background:var(--white);border:1px solid var(--line);overflow:hidden}.pair img{display:block;width:100%;height:auto}.pair span{display:block;font:500 var(--fs-1)/1.2 var(--mono);color:var(--muted);padding:0 10px 10px}.detail-block{margin-bottom:34px}.detail-title{display:flex;align-items:baseline;gap:10px;font-size:var(--fs-4);letter-spacing:-.4px;margin:0 0 14px}.detail-title span{font:600 var(--fs-1)/1 var(--mono);color:var(--blue)}.step-work{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--ink)}.step-work>li{background:var(--sheet);border-top:3px solid var(--blue);padding:12px 16px 18px}.step-work h3{font-size:var(--fs-2);font-weight:700;margin:10px 0}.step-work ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}.step-work ul li{position:relative;padding-left:14px;font-size:var(--fs-1);line-height:1.6;word-break:keep-all}.step-work ul li:before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--blue)}.step-note{margin-top:10px;font-size:var(--fs-1);line-height:1.6;color:var(--muted);word-break:keep-all}.fix-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.fix-list li{display:grid;grid-template-columns:minmax(0,1fr) 32px minmax(0,1fr)}.fix-list p{margin:0;padding:11px 16px 13px;font-size:var(--fs-2);line-height:1.6;word-break:keep-all}.fix-list p span{display:flex;align-items:center;gap:5px;font-size:var(--fs-1);font-weight:650;margin-bottom:2px}.fix-problem{background:var(--surface);border:1px solid var(--line);color:var(--muted)}.fix-answer{background:var(--white);border:1px solid var(--ink);border-left:3px solid var(--blue)}.fix-answer span{color:var(--blue)}.fix-list b{display:grid;place-items:center;font-weight:400;color:var(--line-strong)}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.check-grid>div{background:var(--sheet);border:1px solid var(--line);padding:14px 18px 16px}.check-grid>.check-done{border-top:3px solid var(--blue)}.check-grid>.check-out{border-style:dashed}.check-grid.single{grid-template-columns:1fr;margin-top:12px}.check-grid h3,.check-grid h4{font-size:var(--fs-1);font-weight:650;color:var(--blue);margin:0 0 10px}.check-out h3,.check-out h4{color:var(--muted)}.check-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.check-grid li{position:relative;padding-left:26px;font-size:var(--fs-2);line-height:1.6;word-break:keep-all}.check-grid li:before{position:absolute;left:0;top:.2em;width:16px;height:16px;display:grid;place-items:center;font:700 11px/1 var(--mono)}.check-done li:before{content:"\2713";color:var(--white);background:var(--blue)}.check-out li{color:var(--muted)}.check-out li:before{content:"\2013";color:var(--muted);border:1px solid var(--line-strong)}.case-source{margin-top:14px;font-size:var(--fs-1);line-height:1.7;color:var(--muted);word-break:keep-all}.color-legend{display:inline-flex;flex-wrap:wrap;gap:4px 12px}.color-legend span{display:inline-flex;align-items:center;gap:5px}.color-legend i{width:10px;height:10px;border:1px solid rgba(30,37,34,.25)}.related-research h3{font-size:var(--fs-4);margin:0 0 10px}.related-work{border-top:1px solid var(--line);padding:18px 0}.related-work p{font-size:var(--fs-1);color:var(--muted);margin-top:10px}.case-next{margin-top:40px}.case-next a{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 20px;padding:22px 24px;border:1px solid var(--ink);background:var(--sheet);transition:background-color .2s}.case-next .eyebrow{grid-column:1}.case-next strong{grid-column:1;font-size:var(--fs-4);line-height:1.45;letter-spacing:-.4px}.case-next .row-arrow{grid-column:2;grid-row:1/span 2}.case-next a:hover{background:var(--white)}.case-next a:hover strong,.case-next a:hover .row-arrow{color:var(--blue)}.case-next a:hover .row-arrow{transform:translate(4px)}.archive-intro{display:grid;grid-template-columns:180px 1fr;gap:20px;padding:22px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.archive-intro p{font-size:var(--fs-2);color:var(--muted);max-width:780px;line-height:1.85}.archive-nav{display:flex;gap:32px;padding:20px 0 8px;flex-wrap:wrap}.archive-nav a{display:flex;align-items:center;gap:12px;min-height:36px;font-size:var(--fs-2);color:var(--muted)}.archive-nav a>span:first-child{font:var(--fs-1) var(--mono);color:var(--blue)}.archive-nav a:hover{color:var(--blue)}.research-entry{padding:52px 0;border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--header-h) + 20px)}.research-entry-heading{display:flex;justify-content:space-between;gap:28px;align-items:center;margin-bottom:26px}.research-entry-heading h2{font-size:var(--fs-5);letter-spacing:-.7px;line-height:1.45;margin:8px 0}.period{font:var(--fs-1) var(--mono);color:var(--muted)}.source-link{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid var(--ink);font-size:var(--fs-1);font-weight:600;white-space:nowrap}.source-link:hover{background:var(--white);color:var(--blue)}.source-link app-icon{width:16px;height:16px}.source-link .link-mark{width:13px;height:13px;color:var(--muted)}.research-overview{margin-bottom:40px}.research-summary{font-size:var(--fs-3);line-height:1.8;max-width:780px;margin:0 0 18px;word-break:keep-all}.research-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.research-flow li{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:baseline;padding:14px 16px 16px;border:1px solid var(--line);background:var(--sheet)}.research-flow li+li:before{content:"\2192";position:absolute;left:-15px;top:50%;transform:translateY(-50%);color:var(--line-strong);font-size:var(--fs-1)}.research-flow span{font:600 var(--fs-1)/1 var(--mono);color:var(--blue)}.research-flow b{font-size:var(--fs-2);line-height:1.5;word-break:keep-all}.research-flow p{grid-column:2;font-size:var(--fs-1);line-height:1.6;color:var(--muted);margin:4px 0 0;word-break:keep-all}.research-design{margin-top:18px}.research-design-title{font-size:var(--fs-1);font-weight:650;color:var(--blue);margin:0 0 8px}.research-design dl{margin:0;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--sheet)}.research-design div{padding:14px 16px}.research-design div+div{border-left:1px solid var(--line)}.research-design dt{font:600 var(--fs-1)/1 var(--mono);color:var(--blue)}.research-design dd{font-size:var(--fs-1);line-height:1.6;margin:8px 0 0;word-break:keep-all}.research-credit{font-size:var(--fs-1);color:var(--muted);margin:14px 0 0;word-break:keep-all}.research-overview .tags{margin-top:10px}.result-label{display:flex;align-items:center;gap:12px;margin:0 0 12px;font:600 var(--fs-1)/1.5 var(--mono);color:var(--accent)}.result-label:after{content:"";flex:1;border-top:1px solid var(--line)}.result-figure a{display:block;cursor:zoom-in}.result-figure img{display:block;width:100%;height:auto}.result-figure.compact img{max-width:620px;margin:0 auto}.result-figure figcaption{font-size:var(--fs-1);line-height:1.7;color:var(--muted);padding:12px 2px 0;word-break:keep-all}.result-stats{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.result-stats li{border-top:2px solid var(--ink);padding-top:12px}.result-stats b{display:block;font-size:var(--fs-6);font-weight:750;letter-spacing:-1px;line-height:1.15;color:var(--accent);font-variant-numeric:tabular-nums}.result-stats span{display:block;font-size:var(--fs-1);color:var(--muted);margin-top:6px;word-break:keep-all}.result-summary{font-size:var(--fs-3);line-height:1.85;margin:24px 0 0;max-width:780px;word-break:keep-all}.result-story{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);border:1px solid var(--line);background:var(--sheet)}.result-story li{padding:16px 18px;border-left:1px solid var(--line)}.result-story li:first-child{border-left:0}.result-story span{font:600 var(--fs-1)/1 var(--mono);color:var(--blue)}.result-story li:last-child span{color:var(--accent)}.result-story p{font-size:var(--fs-2);line-height:1.7;margin:8px 0 0}.result-retry{margin-top:20px}.result-retry ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.result-retry li{font-size:var(--fs-1);padding:5px 12px;border:1px solid var(--line-strong);background:var(--white)}.result-retry li:before{content:"\2713";color:var(--blue);margin-right:6px}.result-scope{font-size:var(--fs-1);color:var(--muted);margin-top:20px;word-break:keep-all}.result-details{margin-top:26px;border-top:1px solid var(--line);padding-top:10px}.result-details>summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer;font-size:var(--fs-2);font-weight:600;color:var(--blue);padding:8px 0}.result-details>summary::-webkit-details-marker{display:none}.result-details>summary app-icon{width:16px;height:16px;transition:transform .2s}.result-details[open]>summary{margin-bottom:22px}.result-details[open]>summary app-icon{transform:rotate(90deg)}.research-layout{display:grid;grid-template-columns:1fr .85fr;gap:44px;align-items:flex-start}.research-details .research-layout .check-grid{grid-template-columns:1fr;gap:10px}.env-chips{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:6px}.env-chips li{font:500 var(--fs-1)/1.5 var(--mono);padding:3px 10px;border:1px solid var(--line-strong);background:var(--white)}.finding-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.finding-grid li{background:var(--white);border:1px solid var(--line);border-top:3px solid var(--accent);padding:12px 16px 14px}.finding-grid b{display:block;font-size:var(--fs-2);margin-bottom:4px}.finding-grid p{font-size:var(--fs-1);line-height:1.7;color:var(--muted);word-break:keep-all}.research-layout figure{margin:0;background:var(--white);border:1px solid var(--line);padding:12px 12px 16px}.research-layout figure img{width:100%;display:block}.research-layout figcaption{font-size:var(--fs-1);color:var(--muted);padding:10px 6px 0;line-height:1.8}.research-layout figcaption a{text-decoration:underline;text-underline-offset:3px}.detail-figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.detail-figures figure{margin:0;border:1px solid var(--line);background:var(--white);padding:10px}.detail-figures figure.compact img,.detail-figures figure.compact figcaption{max-width:700px;margin-left:auto;margin-right:auto}.detail-figures img{display:block;width:100%;height:auto}.detail-figures a{display:block;cursor:zoom-in}.detail-figures figcaption{font-size:var(--fs-1);line-height:1.75;color:var(--muted);padding:8px 4px 0}.detail-table{margin-top:18px;overflow-x:auto}.detail-table table{width:100%;border-collapse:collapse;font-size:var(--fs-1);font-variant-numeric:tabular-nums}.detail-table caption{text-align:left;font-size:var(--fs-1);color:var(--muted);padding-bottom:8px}.detail-table th,.detail-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.detail-table th{font:600 var(--fs-1)/1.4 var(--mono);color:var(--blue);border-bottom-color:var(--ink)}.wide-chart{padding:24px 26px 16px;margin:24px 0 0;border:1px solid var(--line);background:var(--white)}.wide-chart img{display:block;margin:auto;width:100%;max-height:320px;object-fit:contain}.wide-chart figcaption{font-size:var(--fs-1);color:var(--muted);margin-top:14px;line-height:1.8}.research-connection{background:var(--sheet);border:1px solid var(--line);padding:20px 24px;margin-top:26px}.research-connection>p{font-size:var(--fs-2);color:var(--muted);line-height:1.85;margin:8px 0 14px}.archive-bridge{text-align:center;padding:56px 0 0}.archive-bridge h2{font-size:var(--fs-5);letter-spacing:-.8px;margin:0 0 16px}.archive-bridge p{font-size:var(--fs-2);color:var(--muted);line-height:1.9;margin-bottom:26px}.contact-intro{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:40px;align-items:end}.contact-intro .page-intro{margin-bottom:0}.contact-card{display:grid;grid-template-columns:88px minmax(0,1fr);gap:18px;align-items:start;border:1px solid var(--ink);background:var(--sheet);padding:18px}.contact-card img{width:88px;height:88px;object-fit:cover;filter:grayscale(1) contrast(1.05);border:1px solid var(--line)}.contact-card strong{display:block;font-size:var(--fs-3);font-weight:700}.contact-card strong span{font:500 var(--fs-1)/1 var(--mono);color:var(--muted);margin-left:6px}.contact-role{display:block;font:var(--fs-1)/1.6 var(--mono);color:var(--blue);margin-top:4px}.contact-card p{font-size:var(--fs-1);line-height:1.7;color:var(--muted);margin-top:8px;word-break:keep-all}.contact-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:24px;margin:40px 0 56px}.contact-panel{border:1px solid var(--ink);padding:28px 30px;background:var(--sheet)}.contact-panel>.eyebrow{display:flex;align-items:center;gap:8px;color:var(--blue)}.contact-panel>.eyebrow app-icon{width:18px;height:18px}.email-panel{border-top:3px solid var(--blue)}.contact-email{font-size:var(--fs-5);font-weight:600;line-height:1.4;letter-spacing:-.6px;margin:18px 0 22px;overflow-wrap:anywhere}.contact-actions{display:flex;flex-wrap:wrap;gap:10px}.button.outline{gap:8px;border-color:var(--ink);background:transparent;color:var(--ink);font-family:inherit;cursor:pointer}.button.outline:hover{background:var(--white)}.copy-status{font-size:var(--fs-1);margin-top:10px;color:var(--muted);min-height:21px}.github-profile{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-4);font-weight:600;margin:18px 0 6px}.github-profile:hover{color:var(--blue)}.github-profile app-icon{width:18px;height:18px;color:var(--muted)}.github-panel>p{font-size:var(--fs-1);color:var(--muted)}.repo-list{list-style:none;margin:12px 0 0;padding:0;border-top:1px solid var(--line)}.repo-list li{border-bottom:1px solid var(--line)}.repo-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:2px;align-items:center;padding:9px 0}.repo-list app-icon{grid-column:2;grid-row:1/span 2;width:15px;height:15px;color:var(--muted)}.repo-list a:hover app-icon{color:var(--blue)}.repo-list code{font:500 var(--fs-1)/1.5 var(--mono);overflow-wrap:anywhere}.repo-list span{font-size:var(--fs-1);line-height:1.5;color:var(--muted)}.repo-list a:hover code{color:var(--blue)}.topic-grid{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.topic-card{display:flex;flex-direction:column;gap:6px;height:100%;padding:12px 12px 16px;border:1px solid var(--line);background:var(--sheet);transition:background-color .2s}.topic-card:hover{background:var(--white)}.topic-card:hover strong{color:var(--blue)}.topic-card img{width:100%;height:auto;aspect-ratio:560/390;object-fit:contain;background:var(--white);border:1px solid var(--line);margin-bottom:6px}.topic-card strong{font-size:var(--fs-2);font-weight:700;line-height:1.5;word-break:keep-all;transition:color .2s}.topic-stat{margin-top:auto;padding-top:6px;font-size:var(--fs-1);color:var(--muted);word-break:keep-all}.topic-stat b{font:700 var(--fs-3)/1.3 var(--sans);color:var(--accent);margin-right:4px}.opencad-section{margin-bottom:56px}.file-choice-table{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:20px}.file-choice-table caption{text-align:left;margin-bottom:16px;color:var(--muted)}.file-choice-table th,.file-choice-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:14px 10px;overflow-wrap:anywhere}.file-choice-table thead th{background:var(--sheet)}.file-choice-table th:last-child,.file-choice-table td:last-child{width:22%}.file-choice-table a{color:var(--blue);text-decoration:underline;text-underline-offset:4px}.file-choice-table app-icon{margin-left:4px}.file-choice-table .file-sample-link{display:flex;align-items:center;width:-moz-fit-content;width:fit-content;min-height:44px;margin-top:4px;font-size:var(--fs-1);font-weight:500}.home-opencad-actions{margin-bottom:24px}.guide-list{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0 0;padding:0}.guide-list li{position:relative;display:grid;align-content:start;gap:8px;padding:20px 56px 22px 22px;border:1px solid var(--line-strong);background:var(--sheet);transition:border-color .2s,background-color .2s}.guide-list li:only-child{grid-column:1/-1}.guide-list li:hover{border-color:var(--ink);background:var(--white)}.guide-list h3{font-size:var(--fs-3);line-height:1.5;letter-spacing:-.3px;word-break:keep-all}.guide-list h3 a{color:var(--ink);transition:color .2s}.guide-list h3 a:after{content:"";position:absolute;inset:0}.guide-list li:hover h3 a{color:var(--blue)}.guide-list p:not(.tool-ext){font-size:var(--fs-1);line-height:1.7;color:var(--muted);word-break:keep-all}.guide-list .tool-ext{margin:0 0 4px}.guide-list .guide-meta{font-family:var(--mono)}.guide-list .row-arrow{position:absolute;top:22px;right:20px}.guide-list li:hover .row-arrow{color:var(--blue);transform:translate(4px)}.tool-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:36px;margin-top:24px;padding:24px;border:1px solid var(--ink);border-top:3px solid var(--blue);background:var(--sheet)}.tool-shot{margin:0}.tool-card.tool-card-text{grid-template-columns:minmax(0,1fr)}.opencad-jump-links{display:flex;flex-wrap:wrap;gap:12px;margin:-24px 0 40px}.opencad-jump-links a{color:var(--blue);border:1px solid var(--line-strong);padding:10px 14px;font-size:var(--fs-1)}.tool-shot img{display:block;width:100%;height:auto;aspect-ratio:1440/900;border:1px solid var(--ink);background:#232833}.tool-shot figcaption{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:var(--fs-1);color:var(--muted)}.tool-meta{display:flex;align-items:center;gap:10px;font-size:var(--fs-1);color:var(--muted)}.tool-status{font:600 var(--fs-1)/1 var(--sans);padding:5px 8px;border:1px dashed var(--line-strong);color:var(--muted)}.tool-status.live{border:1px solid var(--blue);background:var(--blue);color:var(--white)}.tool-body h3{margin-top:14px;font-size:var(--fs-5);letter-spacing:-.8px;line-height:1.35}.tool-ext{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tool-ext code{font:500 var(--fs-1)/1.6 var(--mono);padding:1px 8px;border:1px solid var(--ink);background:var(--white)}.tool-summary{margin-top:16px;font-size:var(--fs-2);line-height:1.85;color:var(--muted)}.tool-features{margin:18px 0 0;border-top:1px solid var(--ink)}.tool-features div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line)}.tool-features dt{font-size:var(--fs-1);font-weight:650;color:var(--blue)}.tool-features dd{margin:0;font-size:var(--fs-2);line-height:1.6;word-break:keep-all}.tool-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.tool-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:24px}.tool-shortcuts .button{min-width:0;min-height:68px;padding:12px;justify-content:space-between;text-align:left;font-size:var(--fs-1);line-height:1.5;white-space:normal;overflow-wrap:anywhere}.page-intro>.shortcut-guide{margin-top:14px}@media (min-width: 1000px){.tool-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr))}}.tool-plans{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.plan-card{padding:18px 20px 20px;border:1px dashed var(--line-strong)}.plan-card h3{margin-top:14px;font-size:var(--fs-4);letter-spacing:-.5px;line-height:1.4}.plan-card .tool-ext code{border-color:var(--line-strong);background:transparent;color:var(--muted)}.plan-summary{margin-top:12px;font-size:var(--fs-2);line-height:1.75;color:var(--muted);word-break:keep-all}.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}@media (max-width: 1100px){.index-layout{grid-template-columns:1fr;gap:40px;padding-top:40px}.index-profile{position:static}.index-profile h1 br{display:none}.profile-text{max-width:640px}.index-nav{display:none}.profile-links{margin-top:24px}.case-story{grid-template-columns:repeat(2,1fr)}.case-story li:nth-child(odd):before{content:none}.step-work{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1000px){.site-header,.site-footer,.page-shell,.index-layout{padding-left:28px;padding-right:28px}.project-row{grid-template-columns:220px 1fr;gap:26px}.tool-card{grid-template-columns:1fr;gap:24px}}@media (max-width: 767px){:root{--header-h: 56px}.site-header{padding:0 20px}.brand{gap:9px}.brand-mark{font-size:26px}.site-header nav{gap:18px}.page-shell,.index-layout{padding-left:20px;padding-right:20px}.index-layout{padding-top:32px;gap:32px}.index-profile h1{font-size:var(--fs-6);margin:20px 0 16px}.index-section{padding-bottom:56px}.section-title h2{font-size:var(--fs-4)}.index-row{grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:start;padding:18px 0;margin:0}.index-row>.row-arrow{display:none}.row-title{font-size:var(--fs-3)}.row-result{font-size:var(--fs-1)}.research-row,.case-row{grid-template-columns:112px minmax(0,1fr)}.index-main{display:flex;flex-direction:column}.index-main>#work,.index-main>#other-projects{order:-1}.index-row .row-stat{grid-column:2;justify-items:start;text-align:left;max-width:none;display:flex;align-items:baseline;gap:8px}.index-row .row-stat b{font-size:var(--fs-4)}.research-row .row-title{font-size:var(--fs-2)}.product-card{grid-template-columns:96px minmax(0,1fr);gap:14px;padding:10px}.product-card>.row-arrow{display:none}.product-card strong{font-size:var(--fs-2)}.about-block{grid-template-columns:64px minmax(0,1fr);gap:18px}.about-block img{width:64px;height:64px}.skill-list>div{grid-template-columns:1fr;gap:6px}.about-statement{font-size:var(--fs-3)}.site-footer{padding:28px 20px 36px}.site-footer dl{grid-template-columns:1fr 1fr;grid-auto-flow:dense}.site-footer dl div:nth-child(2),.site-footer dl div:nth-child(3){grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}.desktop-break{display:none}.interior-page{padding-top:36px;padding-bottom:48px}.page-intro{margin-bottom:28px}.page-intro h1,.detail-intro h1{font-size:var(--fs-5);letter-spacing:-.8px}.page-intro>p:not(.eyebrow){font-size:var(--fs-2)}.project-row{position:relative;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"fig fig fig" "idx cat cat" "title title title" "sub sub sub" "stats stats stats" "per per more";align-items:start;gap:0 10px;margin-bottom:16px;padding:0 16px 16px;border:1px solid var(--line);background:var(--white);box-shadow:var(--shadow)}.project-row+.project-row{border-top-color:var(--line)}.project-row:active{border-color:var(--ink)}.project-row-meta,.project-row-content,.project-summary,.project-summary>div:last-child{display:contents}.row-figure{grid-area:fig;margin:0 -16px 12px;border:0;border-bottom:1px solid var(--line)}.row-figure img{aspect-ratio:16/10;object-fit:cover}.large-index{grid-area:idx;font:600 var(--fs-1)/1.6 var(--mono);color:var(--blue)}.project-row-meta .eyebrow{grid-area:cat;margin:0;max-width:none}.project-row-meta .row-period{grid-area:per;align-self:center;margin-top:12px}.project-row-content>.text-link{grid-area:more;justify-self:end;margin-top:12px;font-size:var(--fs-1)}.project-row-content h2{grid-area:title;margin-top:6px;font-size:var(--fs-3);letter-spacing:-.3px}.project-row-content h2 a:after{content:"";position:absolute;inset:0}.row-subtitle{grid-area:sub;margin-top:4px;font-size:var(--fs-1);line-height:1.6;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.project-row .mini-stats{grid-area:stats;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.project-row .tags,.project-summary>div:first-child,.project-summary h3,.project-summary .row-headline{display:none}.case-figure,.result-figure{padding:10px}.result-headline{font-size:var(--fs-3);margin-bottom:14px}.check-grid,.case-facts,.case-story{grid-template-columns:1fr;gap:12px}.step-work{grid-template-columns:1fr}.case-story li+li:before{content:none}.pair-gallery{padding:12px}.pair-grid{grid-template-columns:1fr}.pair{grid-template-columns:1fr 1fr}.fix-list{gap:20px}.topic-grid{grid-template-columns:1fr;gap:10px}.topic-card{display:grid;grid-template-columns:104px minmax(0,1fr);column-gap:14px;row-gap:4px;align-items:start}.topic-card img{grid-row:1/span 3;margin-bottom:0}.topic-stat{padding-top:0}.finding-grid,.fix-list li{grid-template-columns:1fr}.fix-list b{height:26px;transform:rotate(90deg)}.case-next a{padding:18px}.case-next strong{font-size:var(--fs-3)}.archive-intro{grid-template-columns:1fr;gap:10px;padding:18px 0}.archive-nav{gap:4px 22px}.research-entry{padding:38px 0}.research-entry-heading{display:block}.research-entry-heading h2{font-size:var(--fs-4)}.research-entry-heading .source-link{margin-top:14px}.research-layout{grid-template-columns:1fr;gap:28px}.research-summary{font-size:var(--fs-2)}.research-flow{grid-template-columns:1fr;gap:14px}.research-design dl{grid-template-columns:1fr}.research-design div+div,.result-story li+li{border-left:0;border-top:1px solid var(--line)}.result-story{grid-auto-flow:row}.research-flow li+li:before{content:"\2193";left:18px;top:-14px;transform:none;line-height:14px}.research-overview{margin-bottom:30px}.result-stats{grid-template-columns:1fr;gap:12px}.result-stats li{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding-top:10px}.result-stats b{font-size:var(--fs-5);flex-shrink:0;max-width:100%}.result-stats span{flex:1 1 30%;margin-top:0}.result-summary{font-size:var(--fs-2)}.result-story{grid-template-columns:1fr}.result-story li{border-left:0;border-top:1px solid var(--line)}.result-story li:first-child{border-top:0}.detail-figures figure{padding:6px}.wide-chart{padding:14px 10px}.research-connection{padding:18px}.archive-bridge{padding-top:36px}.contact-intro{grid-template-columns:1fr;gap:24px}.contact-card{max-width:520px}.contact-grid{grid-template-columns:1fr;gap:18px;margin:32px 0 44px}.contact-panel{padding:22px}.contact-email{font-size:var(--fs-4)}.opencad-section{margin-bottom:44px}.tool-card{padding:16px 16px 20px}.tool-plans{grid-template-columns:1fr;gap:12px}.guide-list{grid-template-columns:minmax(0,1fr);gap:10px}.guide-list li{padding:16px 48px 18px 16px}.guide-list .row-arrow{top:18px;right:16px}}@media (max-width: 439px){.site-header nav{gap:12px}}@media (max-width: 389px){.site-header{padding:0 16px}.brand-name span{display:none}.page-shell,.index-layout{padding-left:16px;padding-right:16px}.index-row,.research-row,.case-row{grid-template-columns:92px minmax(0,1fr)}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.motion-toggle{display:none}}@media print{body{background:white;font-size:11pt;color:#000}.site-header-bar{position:static;background:white;-webkit-backdrop-filter:none;backdrop-filter:none}.site-header nav,.index-nav,.contact-actions,.archive-nav,.product-card{display:none}.index-layout{display:block}.index-profile{position:static;margin-bottom:20px}.project-row,.research-layout{display:block}.project-row,.index-row,.detail-block{break-inside:avoid}a[href^="https://github.com"]:after{content:" (" attr(href) ")";font-size:8pt;overflow-wrap:anywhere}}html:not(:lang(ko)){word-break:normal;overflow-wrap:anywhere}html:lang(ja) h1,html:lang(ja) h2,html:lang(ja) h3,html:lang(zh-CN) h1,html:lang(zh-CN) h2,html:lang(zh-CN) h3{word-break:normal}.image-original-link{display:block;margin-top:.5rem;font-size:.875rem;text-decoration:underline;text-underline-offset:3px}
