:root{color-scheme:dark;--bg:#0e0e0e;--ink:#f3f3f3;--sub:#a1a1a1;--line:#444444;--accent:#dbdbdb}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.7 "Segoe UI","Microsoft JhengHei","Yu Gothic","Malgun Gothic",sans-serif;min-height:100dvh}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:5px}svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}.ambient{position:fixed;inset:0;z-index:-1;background:linear-gradient(0deg,#0e0e0e,transparent 35%),none no-repeat center top / cover;pointer-events:none}.ambient:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0e0e0e45 20%,transparent 75%)}.header{height:94px;padding:0 64px;margin:auto;max-width:1680px;border-bottom:1px solid #ffffff10;display:flex;align-items:center;justify-content:space-between;gap:25px;background:#0e0e0e70;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px;font-size:19px;font-weight:600;letter-spacing:2px;white-space:nowrap}.brand-mark{font:40px/1 Georgia;color:var(--accent)}#navigation{display:flex;gap:39px;height:100%;margin-left:40px}.nav-button{height:100%;color:#b3b3b3;letter-spacing:1px;position:relative;padding:0 3px;font-size:14px;white-space:nowrap}.nav-button.active{color:#ffffff}.nav-button.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--accent);box-shadow:0 -2px 18px #dbdbdb50}.header-tools{display:flex;align-items:center;gap:17px}#contact{font-size:12px;color:#cfcfcf;display:flex;align-items:center;gap:8px;white-space:nowrap}#contact svg{width:15px;height:15px}#contact:hover{color:var(--accent)}.icon-button{width:35px;height:35px;display:inline-grid;place-items:center;color:#b6b6b6;position:relative}.icon-button:hover{background:#ffffff0a;border-radius:5px;color:var(--accent)}.save-dot{position:absolute;right:5px;top:5px;width:5px;height:5px;border-radius:50%;background:var(--accent)}main{max-width:1552px;margin:auto;padding:53px 64px 50px;min-height:calc(100dvh - 163px)}main.home{padding-top:95px}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:32px;max-width:880px}.page-head h1{font-size:35px;font-weight:500;letter-spacing:4px;line-height:1.5;margin:0}.page-kicker{font:10px/1.5 Consolas,monospace;letter-spacing:3px;color:#a2a2a2;margin-bottom:11px;display:flex;align-items:center;gap:10px}.page-kicker:before{content:"";width:20px;height:1px;background:var(--accent)}.page-number{font:11px Consolas,monospace;letter-spacing:2px;color:#949494}.breadcrumb{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:#838383;font-size:11px;margin-bottom:23px}.breadcrumb button{color:#b9b9b9;padding:0;font-size:11px}.breadcrumb button:hover{color:var(--accent)}.breadcrumb span:last-child{color:#dddddd}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:820px}.home .gallery{max-width:670px}.category-card{height:300px;border:1px solid #8383834d;border-radius:9px;background:linear-gradient(135deg,#252525a8,#141414cc);backdrop-filter:blur(16px);padding:27px;text-align:left;position:relative;overflow:hidden;isolation:isolate;transition:transform .3s,border-color .3s;display:block;width:100%;color:#ffffff}.category-card:hover{transform:translateY(-4px);border-color:#e1e1e1aa}.category-card:before{content:"";position:absolute;left:13px;top:13px;width:17px;height:17px;border-top:1px solid #d6d6d687;border-left:1px solid #d6d6d687}.category-card:after{content:"";position:absolute;right:13px;bottom:13px;width:17px;height:17px;border-bottom:1px solid #d6d6d687;border-right:1px solid #d6d6d687}.card-graphic{position:absolute;right:35px;top:43px;width:135px;height:135px;color:#cfcfcf4a;filter:drop-shadow(0 0 20px #acacac2b)}.category-card:nth-child(2) .card-graphic{color:#b4b4b458}.card-graphic svg{height:100%;width:100%;stroke-width:.8}.card-label{position:absolute;left:28px;bottom:25px;right:28px;z-index:2;display:flex;justify-content:space-between;align-items:flex-end}.card-label h2{font-size:26px;font-weight:500;letter-spacing:3px;line-height:1.5;margin:0}.card-label small{font:9px/1.6 Consolas,monospace;letter-spacing:2px;color:#b6b6b6;display:block;margin-bottom:5px}.card-arrow{width:33px;height:33px;border:1px solid #bababa3d;border-radius:50%;display:grid;place-items:center;color:#dcdcdc}.card-arrow svg{width:17px;height:17px}.card-index{font:10px Consolas,monospace;color:#969696;letter-spacing:2px}.method-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;max-width:1120px}.method-card{height:165px;background:linear-gradient(135deg,#292929e6,#181818ed);border:1px solid #444444;border-radius:7px;position:relative;text-align:left;padding:20px;backdrop-filter:blur(18px)}.method-card:hover{border-color:#d0d0d0}.method-card.available{background:linear-gradient(135deg,#373737ec,#222222ed)}.method-card small{font:10px Consolas,monospace;color:#9e9e9e}.method-card.available small{color:#d7d7d7}.method-card svg{position:absolute;right:18px;top:22px;width:75px;height:60px;color:#b8b8b83d}.method-card.available svg{color:#dbdbdb7a}.method-card strong{position:absolute;left:20px;right:15px;bottom:20px;font-size:14px;font-weight:500;letter-spacing:.4px}.examples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px;max-width:1120px}.example-card{border:1px solid #4d4d4d;border-radius:8px;overflow:hidden;background:#1d1d1deb;position:relative;backdrop-filter:blur(15px)}.example-image{display:block;padding:0;width:100%;height:360px;overflow:hidden}.example-image img{width:100%;height:100%;object-fit:cover;object-position:center 24%;display:block}.example-title{text-align:left;padding:17px 20px;display:block;font-size:15px;letter-spacing:1px;width:100%}.save-button{position:absolute;right:12px;top:12px;width:35px;height:35px;display:grid;place-items:center;border:1px solid #aeaeae4a;border-radius:50%;background:#141414b0;z-index:3;color:#d3d3d3}.save-button.active{color:var(--accent);background:#3c3c3ccc}.save-button.active svg{fill:#dbdbdb25}.empty{min-height:270px;display:grid;place-content:center;text-align:center;border:1px solid #4e4e4e;border-radius:8px;background:#1d1d1dcf;padding:35px;grid-column:1/-1;max-width:750px;backdrop-filter:blur(15px)}.empty h2{font-size:20px;font-weight:500;margin:10px 0}.empty p{font-size:12px;color:#b1b1b1;max-width:470px;margin:5px auto 18px}.empty>svg{margin:auto;color:#acacac}.plain-button{font-size:12px;color:var(--accent);border-bottom:1px solid #cfcfcf4d;padding:5px 0;width:fit-content;margin:auto}.diagram{height:100%;display:grid;place-items:center;background:radial-gradient(ellipse,#383838,#1a1a1a)}.diagram svg{width:100%;height:100%;max-height:330px}.diagram text{fill:#bbbbbb;stroke:none;font:10px Consolas,"Microsoft JhengHei",sans-serif}.diagram .lamp{stroke:#e4e4e4;fill:#565656}.diagram .subject{fill:#e1e1e1;stroke:none}.diagram .beam{fill:#dbdbdb18;stroke:none}.diagram .camera{fill:#404040;stroke:#b6b6b6}.diagram .dash{stroke:#7d7d7d;stroke-dasharray:3 5}footer{padding:20px 64px 26px;max-width:1552px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:25px;border-top:1px solid #ffffff0a;color:#929292;font-size:10px}footer>span:first-child{font:9px Consolas,monospace;letter-spacing:2px;display:flex;align-items:center;gap:13px}footer i{width:4px;height:4px;background:#dbdbdb8c;border-radius:50%;box-shadow:0 0 10px #dbdbdb35}#footer-note{text-align:right;max-width:600px}dialog{color:var(--ink);background:#1a1a1a;border:1px solid #5d5d5d;box-shadow:0 30px 100px #000000bb;border-radius:9px;padding:0;max-height:90dvh}dialog::backdrop{background:#090909bd;backdrop-filter:blur(7px)}.settings-dialog{width:370px;max-width:calc(100% - 30px);margin:95px 35px auto auto}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 24px;border-bottom:1px solid #424242;position:sticky;top:0;background:#1a1a1af5;z-index:4}.dialog-header h2{font-size:16px;font-weight:500;margin:0;letter-spacing:1px}.settings-body{padding:22px 24px 27px}.settings-body h3{font-size:11px;font-weight:400;letter-spacing:1px;color:#b4b4b4;margin:0 0 13px}.language-list{display:grid;gap:6px}.language-option{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:12px 13px;border:1px solid transparent;border-radius:5px;color:#cbcbcb}.language-option:hover{background:#313131}.language-option.active{background:#3a3a3a;border-color:#797979;color:#e7e7e7}.language-option span{font:10px Consolas,monospace;color:#a7a7a7}.detail-dialog{width:1030px;max-width:calc(100% - 40px);overflow:auto}.detail-body{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:28px;align-items:start}.detail-photo{height:500px;position:relative;overflow:hidden;border-radius:5px;background:#292929}.detail-photo img{width:100%;height:100%;object-fit:cover;object-position:center 24%;display:block}.detail-photo.landscape{height:365px}.asset-note{font-size:10px;color:#a3a3a3;line-height:1.8;margin:10px 0 15px}.detail-copy h3{font-size:15px;font-weight:500;color:#e3e3e3;margin:0 0 7px}.detail-copy p{font-size:13px;color:#b3b3b3;line-height:1.95;margin:0 0 24px}.detail-copy .quote{border-left:2px solid #cecece;padding-left:13px;color:#dcdcdc}.detail-tools{display:flex;gap:10px;flex-wrap:wrap}.outline-button{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border:1px solid #555555;border-radius:4px;font-size:11px;color:#cdcdcd}.outline-button.active,.outline-button:hover{color:var(--accent);border-color:#9a9a9a}.grid-overlay{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 33.1%,#eeeeee9e 33.1%,#eeeeee9e 33.4%,transparent 33.4%,transparent 66.5%,#eeeeee9e 66.5%,#eeeeee9e 66.8%,transparent 66.8%),linear-gradient(transparent 33.1%,#eeeeee9e 33.1%,#eeeeee9e 33.4%,transparent 33.4%,transparent 66.5%,#eeeeee9e 66.5%,#eeeeee9e 66.8%,transparent 66.8%)}.grid-overlay.hidden{display:none}.range-label{display:block;font-size:12px;color:#bebebe;margin:15px 0}.range-label input{display:block;width:100%;accent-color:var(--accent);margin-top:10px}#toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,10px);opacity:0;pointer-events:none;background:#363636;border:1px solid #7f7f7f;color:#f1f1f1;border-radius:5px;padding:11px 22px;z-index:99;max-width:90%;font-size:12px;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1600px){main.home{padding-top:125px}.home .gallery{max-width:720px}.category-card{height:330px}.ambient{background-size:cover;background-position:center 0}}
@media(max-width:1100px){.header{padding:0 35px;gap:18px}#navigation{margin:0;gap:25px}.header-tools{gap:9px}.brand{font-size:16px}main{padding:40px 35px}main.home{padding-top:80px}.home .gallery{max-width:580px}.category-card{height:270px}.method-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.card-graphic{right:25px;width:115px;height:115px}.card-label{left:24px;right:24px}.card-label h2{font-size:23px}.examples{gap:15px}.example-image{height:300px}footer{padding:20px 35px}.ambient{background-position:58% 0}.detail-body{gap:23px}.detail-photo{height:450px}}
@media(max-width:760px){.header{height:auto;min-height:112px;flex-wrap:wrap;padding:17px 22px 0;gap:12px}.brand{flex:1;font-size:16px;gap:9px}.brand-mark{font-size:32px}.header-tools{gap:7px}#contact{font-size:11px}#contact svg{display:none}.icon-button{width:30px;height:30px}#navigation{order:3;width:100%;height:43px;gap:34px;justify-content:flex-start}.nav-button{font-size:13px}.ambient{background-size:auto 760px;background-position:65% 0}.ambient:after{background:linear-gradient(0deg,#0e0e0e 0%,#0e0e0e55 80%)}main,main.home{padding:37px 22px;min-height:calc(100dvh - 200px)}.page-head{margin-bottom:24px}.page-head h1{font-size:28px}.page-kicker{font-size:9px}.page-number{font-size:10px}.gallery,.home .gallery{max-width:none;gap:15px}.category-card{height:250px;background:linear-gradient(135deg,#252525bd,#141414de)}.card-graphic{width:100px;height:100px;right:22px;top:49px}.card-label{left:23px;right:22px;bottom:21px}.card-label h2{font-size:23px;letter-spacing:1px}.card-label small{font-size:8px;letter-spacing:1px}.card-arrow{width:27px;height:27px}.card-arrow svg{width:14px}.method-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.method-card{height:150px;padding:17px}.method-card strong{font-size:13px;left:17px}.method-card svg{width:63px;right:15px}.examples{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.example-image{height:300px}.example-title{font-size:13px;padding:14px 17px}.detail-body{grid-template-columns:1fr;padding:22px}.detail-photo{height:500px}.detail-photo.landscape{height:350px}.detail-dialog{max-width:calc(100% - 20px)}.dialog-header{padding:14px 20px}.settings-dialog{margin:85px 15px auto auto}footer{padding:18px 22px 25px;font-size:9px;align-items:flex-start}#footer-note{font-size:9px;max-width:220px}}
@media(max-width:480px){.ambient{background-position:60% 0;background-size:auto 620px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.category-card{height:225px;padding:18px}.card-graphic{width:84px;height:84px;top:51px;right:19px}.card-label{left:18px;right:17px;bottom:21px}.card-label h2{font-size:20px;letter-spacing:1px}.card-label small{font-size:7px;letter-spacing:.4px}.card-arrow{width:22px;height:22px}.card-arrow svg{width:12px}.card-index{font-size:8px}.brand{font-size:14px;letter-spacing:1px}.header-tools{gap:4px}#contact{font-size:10px}.page-head h1{font-size:27px}.examples{grid-template-columns:1fr}.example-image{height:400px}.method-card{height:145px}.method-card strong{font-size:12px}.detail-photo{height:450px}.detail-photo.landscape{height:300px}.breadcrumb{font-size:10px}footer{display:block}footer>span:first-child{margin-bottom:9px}#footer-note{max-width:none;text-align:left}.empty{padding:25px 18px}.category-card .card-label h2:lang(en),.category-card .card-label h2:lang(ja),.category-card .card-label h2:lang(ko){font-size:17px;letter-spacing:0}.category-card .card-arrow:lang(en),.category-card .card-arrow:lang(ja),.category-card .card-arrow:lang(ko){display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.glow-cursor__canvas{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;pointer-events:none;z-index:100;mix-blend-mode:screen}
.glow-cursor__canvas::backdrop{background:transparent;pointer-events:none}
